如何在正常的Java环境中使用使用Weld的CDI启动应用程序,该应用程序只是从命令行启动,后台没有Glassfish或Tomcat?使用Weld 1.x,您可以做如下的事情
public static void main(String[] args) {
final WeldContainer weld = new Weld().initialize();
service = weld.instance().select(MyService.class).get();
}但是,在Weld 2.x中缺少initialize()。
我可以这样做:
@ApplicationScoped
public class Main {
@Inject
Foo foo;
public void main(@Observes ContainerInitialized event) {
System.out.println("Starting application");
}
}这将注入Foo,但我希望将整个应用程序打包到一个jar中,供其他不需要等待Weld实际开始运行的应用程序使用。所以我想要一种正确初始化焊接的方法。
发布于 2013-12-20 18:50:21
引导Weld SE在Weld 1.x和2.x之间没有更改,请参阅参考手册。
只需确保导入org.jboss.weld.environment.se.Weld,而不是导入新的类org.jboss.weld.Weld。
https://stackoverflow.com/questions/20707346
复制相似问题