有没有办法用应用程序启动 CDI Bean?我有这个豆子:@ApplicationScoped@Namedpublic class MyBean implements Serializable { @Inject private Helper helper; @PostConstruct public void init() { helper.doThings(); }}我希望这个 bean 在部署时从应用程序开始。我正在使用weld-servlet 和tomcat7:<dependency> <groupId>org.jboss.weld.servlet</groupId> <artifactId>weld-servlet</artifactId> <version>${weld-servlet.version}</version> <scope>compile</scope></dependency>
2 回答
隔江千里
TA贡献1906条经验 获得超10个赞
尝试:
public void startup(@Observes @Initialized
(ApplicationScoped.class) Object context){
//your code here
}
这将确保该方法在启动时执行,并启动您的 bean。
或者您可以使用 OmniFaces@Eager注释。
慕容3067478
TA贡献1773条经验 获得超3个赞
确保您的 tomcat7 变体支持 CDI然后,
@Startup
@Singleton
public class MyBean {
@PostConstruct
private void init() {
// place your initialization code here
}
}
添加回答
举报
0/150
提交
取消