我正在编写基于JavaEE的应用程序,但我不确定何时会发生依赖注入。假设我有两个班级:
(&(objectclass=user)(objectcategory=user)(useraccountcontrol:1.2.840.113556.1.4.803:=2)(msRTCSIP-Line=tel:*))
和
@Stateless
class RepoBean {
@Resource
private SomeResource someResource;
public List<SomeObject> search(String someQuery) {// implementation}
}
我的问题是:
@Stateless
class ServiceBean {
@EJB
private RepoBean repoBean;
public void search(List<String> someQueries {
for (String someQuery : someQueries) {
List<SomeObject> someObjects = this.repoBean.search(someQuery)
for (SomeObject someObject : someObjects) {
// handle someObject)
}
}
}
答案 0 :(得分:1)
无状态bean实例化是懒惰的。如果应用程序启动,则将创建一个名为 free pool 的空Stateless-EJB池。在第一个客户端请求时,将创建,使用具体的 RepoBean 实例,然后将其放入空闲池中。池的大小是可配置的。在一些不活动时间之后,实例将被销毁并从池中删除。
只要父this.repoBean
个实例存活, ServiceBean#search
将始终与ServiceBean
方法相同。