使用CDI有一些业务逻辑(@ javax.inject.Inject和@ javax.persistence.PersistenceUnit)。想要在desctop应用程序内部重用它。
将beans.xml添加到META-INF文件夹中。将Java 7设置为默认值。写了简单的课:
public class Main {
@Inject
private static AggregatedUserQueries aggregatedUserQueries;
public static void main(String[] args) {
System.out.println(aggregatedUserQueries);
}
}
当然,它会向控制台输出“ null”。有什么方法可以在桌面应用程序中使用CDI?
如前所述@Boris Pavlović
,您可以引导Weld并以编程方式获取bean。但是,也有可能使注射工作。您需要在桌面应用程序中定义将“替换”您的的启动方法public static void main(String ... args)
。考虑:
public class Main {
@Inject
private Bean bean;
public void startup(@Observes ContainerInitialized event) {
this.bean.sayHello();
}
}
startup()
引导Weld时将调用此方法。您可以通过org.jboss.weld.environment.se.StartMain
作为主类执行来实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句