基本上,我的项目是一场战争(MyProject),导入2罐,MyProject-Client和MyProjectJar-API
我的项目
pom.xml
<dependency>
<groupId>com.sample</groupId>
<artifactId>MyProject-Client</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.sample</groupId>
<artifactId>MyProjectJar-API</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
@Named
@Stateless
public class ParametroServiceImpl implements ParametroService, Serializable {
}
MyProjectJar-API - 有一个接口
public interface ParametroService {}
MyProject-Client -想要注入在MyProject上生成的ParametroService
@Named
@RequestScoped
public class RestEngine implements Serializable{
@Inject
private ParametroService parametroService;
}
我想知道是否可以将ParameterService(在MyProject上生成)注入MyProject客户端(这是在MyProject中导入的jar)?
更新
如果我以这种方式注入,它将不起作用
@Inject
private ParametroService parametroService;
但是如果我做一个程序查找,它有效,但我不知道为什么
BeanManager beanManager=(BeanManager)new InitialContext().lookup("java:comp/BeanManager");
Bean<?> bean = beanManager.getBeans(ParametroService.class).iterator().next();
parametroService = (ParametroService)beanManager.getReference(bean, ParametroService.class, beanManager.createCreationalContext(bean));
有两种可能的解决方案:使用< code>bean archives或< code>@Producer方法。
要将您的MyProjectJar-API
转换为bean存档,您只需添加一个META-INF
目录,其中包含beans.xml
。如果您控制正在使用的jar,这是更可取的解决方案。
如果您无法修改jar,您仍然可以创建@Producer
方法,该方法创建对象的实例。CDI将使用此方法来创建实例。
public class ParametroServiceProducer {
@Produces
public ParametroService createInstance() {
return new ParametroServiceImpl();
}
}
在Spring中,我们有基于注释和基于XML的配置。虽然第一种配置被推荐用于快速开发,但第二种配置更加灵活,能够处理特殊情况。我们目前有两种配置:为JUnit测试注入模拟和从外部库配置bean。 我还没有为CDI的XML配置找到任何等价物,所以我的问题是,如何处理这种bean的依赖注入?它们来自外部库,需要进行配置,不可能向它们添加任何注释。
我有一个JAR文件,其中包含一个请求范围Bean。(一个注释为的类)。 我有另一个Web服务项目(作为WAR文件构建)。上述JAR文件位于WAR文件的文件夹中。 我试图的类到Web服务项目中的一个类中。 我正在得到一个 这两个项目都有JAR文件,WAR文件包含一个空的。我已经研究这个问题好几天了。请帮忙。 谢谢
问题内容: 当前,我正在使用PersistenceContext注入EntityManager。EM被完美注入。 现在,我尝试装饰Bean,然后突然没有注入em。我得到一个NullPointerException。 我知道EJB和CDI是2个完全不同的管理器,所以一个都不知道另一个。我期望@PersistenceContext是EJB注入点,而@Inject是CDI。我应该怎么做才能解决这个问题并
当前有包含内部映射器的映射器(有时,它们本身包含其他内部映射器)。
问题内容: 由于JPA 2.0不支持注入EntityListener(将使用JPA 2.1),因此决定使用JNDI查找来获取,并通过它来获取登录用户。我定义了一个与此类似的东西: 在会话范围内以以下方式管理用户: 我想知道这种方法有什么缺点或要注意的地方。性能吞吐量?当有多个登录用户在其自己的范围内同时更新实体时,会发生什么情况? Hibernate JPA 2.0 缝焊CDI Glassfish
我一直在思考编译时评估注释值的Java特性,它似乎真的很难外部化注释值。 但是,我不确定这是否真的是不可能的,所以我非常感谢对此的任何建议或明确的答案。 更重要的是,我试图将控制Spring中预定方法调用之间延迟的注释值外部化,例如: 假设位于类路径上,并且包含属性键及其相应的长整型值。 现在,这段代码有明显的编译错误,因为我们试图将值赋给变量,但这是强制性的,因为我们不能将变量赋给注释值,除非它