Lor*_*ulu 9 websphere java-ee ejb-3.1
在WebSphere 8.0上运行的Java EE 6应用程序的上下文中,我需要在执行任何业务方法之前执行许多启动任务.为此目的使用@Startup @Singleton bean似乎是一个很有前景的解决方案.但是,我并不完全清楚应用程序生命周期的确切外观.在EJB 3.1规范规定如下:
默认情况下,容器负责决定何时初始化Singleton bean实例.但是,bean开发人员可以选择配置Singleton以进行急切初始化.如果Startup注释出现在Singleton bean类上,或者如果Singleton已经通过部署描述符指定为需要初始化初始化,则容器必须在应用程序启动序列期间初始化Singleton bean实例.在将任何客户端请求传递到应用程序中的任何企业bean组件之前,容器必须初始化所有此类启动时单例.
在最后一句中,究竟是什么构成了"初始化"?在使企业bean可用于客户端请求之前,容器是否会等待@Startup bean的@PostConstruct方法返回?
说到"客户端请求",在这种情况下,使用@Scheduled注释计数的EJB方法的预定执行是否为一个?
我需要保证在应用程序启动之前执行某些代码,然后才能运行任何应用程序的各种EJB中的任何业务方法,无论是通过客户端调用还是计划执行.在@Singleton @Startup bean的@PostConstruct方法中运行启动代码是否提供了这样的保证?如果没有,有没有其他方法来保证这种行为?
@PostConstruct中所有@Startupbean 的方法("EJB应用程序")返回.@PostConstruct方法完成,因此@PostConstruct方法不能等待计时器回调调用完成.| 归档时间: |
|
| 查看次数: |
3321 次 |
| 最近记录: |