如何在普通Java SE环境中使用Weld启动应用程序,该命令行只是从命令行启动,后台没有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,但我想将整个Application打包到一个jar中,供其他应用程序使用,而不需要等待Weld实际开始运行。所以我基本上想要一种正确初始化Weld的方法。
答案 0 :(得分:1)
Bootdpping Weld SE在Weld 1.x和2.x之间没有变化,请参阅reference manual。
只需确保导入org.jboss.weld.environment.se.Weld
,而不是新的类org.jboss.weld.Weld
。