我想主题是这样说的.我试过谷歌搜索这个,但还没有得到我正在寻找的答案.
我有很多只有@Stateless的EJB.有时我会把@Local放在他们身上而不知道为什么,以及好处/缺点.我也知道我可以把@Remote,但真的不知道区别.
希望有人可以给出一个清晰的描述,或者指出某个地方.
我知道要创建无状态应用程序,我们需要来回传输用户状态而不是服务器保持用户状态.
但是,必须有一些状态存储在服务器中,我读到这篇文章,存储在服务器中的状态称为资源状态.所以,如果我是对的,我们经常调用的客户端状态应该与应用程序状态相同.
那么,我如何区分这两者,因为它将确定它们是应该存储在服务器中还是传输的.
以购物车为例.
如果在用户完成购买之前有5个步骤,则用户的阶段(#3,#4)似乎是应用程序状态,但这是否意味着如果他们关闭浏览器并再次点击付费,他将不得不从step1开始?
他图表中的项目怎么样?如果我们将其视为应用程序状态,我们需要将所有项目放在请求中.但是如果我们这样做,当用户关闭浏览器并再次登录时,他将无法再次找到他的项目,因为浏览器无法记住所有项目.因此,我们似乎应该将其视为资源状态.但如果是这样,当用户点击付费时,他们会有一个不同的页面:根据他的购物车是否为空,去支付或说"你的购物车是空的".因此,具有完全相同的param输入的相同请求出现了不同的结果,我们仍然可以说它是无状态的吗?
也许我明白了什么不对,请问任何人可以回答如何区分不同类型的状态以及如何区别对待它们?
我正在尝试获取无状态子组件的高度,以便我能够在父类中使用它的高度,但是我收到以下错误: Invariant Violation: Stateless function components cannot have refs.
class App extends React.Component {
componentDidMount() {
console.log(this.header);
}
render() {
return (
<Child ref={component => this.header = component} />
)
}
}
Run Code Online (Sandbox Code Playgroud)
const Child = () => (
<header ref="header">
Some text
</header>
)
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
这是一个带错误的Codepen链接.
更新:
所以我目前有一个Header组件,看起来像这样:
export const Header = ({dateDetailsButton, title, logo, backButton, signUpButton, inboxButton, header}) => (
<header header className="flex flex-row tc pa3 bb b--light-gray relative min-h-35 max-h-35">
{signUpButton ? …
Run Code Online (Sandbox Code Playgroud) 我是JPA的新手,我无法理解无状态和有状态之间的用法和区别.
有经验吗?
问候,Haythem
我想知道的是,如果我从正确的角度接近这一点.
我有一个我正在构建的asp.net应用程序.我正在使用Masterpage来查看应用程序的整体外观(下面您可以看到代码).
我想让菜单系统使用像jQuery .load()
函数这样的动态加载来加载内容.那很好,我把它弄下来了.该.load()
函数用于innerHTML
将该内容泵入页面.如果在该页面上要加载特定于模块的脚本和样式,则会出现此问题.
我的问题是,在这样的环境中,你们如何加载这些模块的脚本?我应该在应用程序的初始加载时加载每个脚本吗?这个应用程序永远不会"那么大",但我想确保我做对,以防万一.
MasterSheet
<div id="primaryNavigation">
<ul>
<li class="current"><a href="../Default.aspx">Main</a></li>
<li><a href="../Modules/Page1.aspx">Some Overview</a></li>
<li><a href="../Modules/Page2.aspx">Reporting</a></li>
<li><a href="../Modules/Page3.aspx">More Reporting</a></li>
<li><a href="../Modules/Page4.aspx">About</a></li>
</ul>
</div>
<div id="mainContentContainer">
<asp:ContentPlaceHolder ID="cphBody" runat="server" />
</div>
Run Code Online (Sandbox Code Playgroud)
Content标记内的示例模块
<div id="container">
Inside a page
<script id="scriptToLoad" type="text/javascript">
alert('Something');
head.ready(function () { console.log('please print'); });
</script>
</div>
<div id="includeScripts">
../Files/Javascript/SomeModuleSpecificJs.js
../Files/Javascript/SomeModuleSpecificJs1.js
</div>
Run Code Online (Sandbox Code Playgroud)
我的想法是div
在每个模块中设置一个id为"includeScripts"的模块,然后加载来自mastersheet中的方法的模块.此方法有效(显然需要一些tweeking)但是如果用户不断点击模块,最终将加载每个文件.如果是这样的话我也可以在主板上加载它们.
加载MasterPage时要运行JS
$navigation = $("#primaryNavigation").delegate('ul li a', 'click', function () {
$('#primaryNavigation').find('li').removeClass('current');
$(this).parent().addClass('current');
$('#mainContentContainer').load($(this).attr('href') + ' #container');
// Obviously …
Run Code Online (Sandbox Code Playgroud) 我试着用EJB Session Beans做一个例子.我想看看它们之间的差异.我的基本项目图如下;
http://img109.imageshack.us/img109/8262/85220418.png
项目就像一个购物车.当我调用托管bean以通过注入的EJB获取添加的Urun对象的结果时,结果列表必须是最后一个Urun对象.因为我的EJB是@Stateless bean.但是,当我运行应用程序时,它会保留所有新添加的Urun对象.但它是无国籍的,它必须在每个动作中保留最后一个Urun对象.然后,当我在其他网络浏览器中打开应用程序页面时,它会列出之前添加的Urun对象的列表.但是在我的模型中,托管bean和Ejb是无状态的.但它扮演一个Singleton bean.我的问题在哪里?
@Stateless
public class AlisverisSepetiEJB {
List<Urun> urunler=new ArrayList<>();
public List<Urun> getUrunler() {
return urunler;
}
public void setUrunler(List<Urun> urunler) {
this.urunler = urunler;
}
public void urunEkle(Urun urun){
urunler.add(urun);
}
}
Run Code Online (Sandbox Code Playgroud)
@ManagedBean(name="bean")
@RequestScoped
public class JSFYonetimliNesne {
public JSFYonetimliNesne(){
System.out.println("Yönetimli nesne çal??t?");
}
@EJB
AlisverisSepetiEJB alisverisSepeti;
Urun urun=new Urun();
List<Urun> urunler;
public List<Urun> getUrunler() {
return alisverisSepeti.getUrunler();
}
public void setUrunler(List<Urun> urunler) {
this.urunler = urunler;
}
public Urun getUrun() {
return urun; …
Run Code Online (Sandbox Code Playgroud) 我是Play框架的新手,
我们说Play 2完全是RESTful - 每个连接没有Java EE会话.但是,我们可以通过不同的方式保存数据:会话,Flash或缓存!
不存在任何矛盾吗?!或者我误解了一些事情?!
有人可以向我解释一下吗?
Hibernate有一个无状态版本的会话:JPA EntityManager是否存在类似的东西?即一个不使用第一级缓存的EntityManager?
我们需要构建无状态微服务,该服务依赖数据库集群来持久化数据。
对于使用数据库集群的冗余无状态微服务(以实现高可用性和可伸缩性),建议使用哪种方法?例如:运行1.0版付款服务的多个副本。
所有冗余微服务都应该使用公共共享数据库架构还是应该有自己的架构?如果是独立的DB模式,则冗余服务之间可能存在不一致。
另外,在使用通用数据库模式的情况下,如何处理模式升级?
database high-availability distributed-computing stateless microservices
我正在阅读有关无状态微服务的一些信息。我的问题很简单。如果一个微服务有一些持久性存储,这是否使它成为有状态的微服务。这总是真的吗?任何意见将不胜感激。