首先,EJB是Java EE的一部分,因此您不能在Java SE中使用它们。但是,CDI可以在Java
SE环境中使用,我的示例将向您展示如何将其与Weld一起使用,但还有其他实现-请注意,CDI只是规范,而Weld是该规范的实现之一。
为了使用Weld,您需要放入
weld-se-x.x.x-Final.jar类路径或在Maven中指定其依赖项,例如
<dependency> <groupId>org.jboss.weld.se</groupId> <artifactId>weld-se</artifactId> <version><!-- See https://mvnrepository.com/artifact/org.jboss.weld.se/weld-se for current version --></version></dependency>
然后,您需要在您的main方法中启动容器,因此请执行以下 *** 作
public static void main(String[] args) throws IOException { Weld weld = new Weld(); WeldContainer container = weld.initialize(); Application application = container.instance().select(Application.class).get(); application.run(); weld.shutdown();}
这应该可以帮助您入门,然后可以使用CDI生产者来进行
EntityManager注射
@Produces@RequestScopedpublic EntityManager createEntityManager() { return Persistence.createEntityManagerFactory("mgr").createEntityManager();}public void closeEM(@Disposes EntityManager manager) { manager.close();}
另请参阅有关在Java SE中使用CDI的焊接文档。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)