Java 如何为CDI/Weld喷射对象
我认为这是一个相当基本的问题,但我还没有找到解决办法。 我将如何“射出”一个对象,我以后希望将其作为要注入的对象 比如说,我们有一个ServiceA,它创建了一个对象Java 如何为CDI/Weld喷射对象,java,jsf,session,cdi,Java,Jsf,Session,Cdi,我认为这是一个相当基本的问题,但我还没有找到解决办法。 我将如何“射出”一个对象,我以后希望将其作为要注入的对象 比如说,我们有一个ServiceA,它创建了一个对象 @Stateless public class ServiceA { public void createObject() { MyObject myObject = callSomeService(); ---> now put myObject into the session } }
@Stateless
public class ServiceA {
public void createObject() {
MyObject myObject = callSomeService();
---> now put myObject into the session
}
}
另一个服务B应该能够使用此对象:
@Stateless
public class ServiceB {
//should be available here
@Inject
private MyObject myObject
}
我该怎么做?
谢谢你的帮助 您可能需要使用生产者方法 producer方法可以允许您在以下位置选择bean实现: 运行时,而不是在开发时或部署时 您可以在网上找到如何使用Producer方法的示例。看起来很有用 类似问题:
- 您可能需要使用生产者方法
producer方法可以允许您在以下位置选择bean实现:
运行时,而不是在开发时或部署时
您可以在网上找到如何使用Producer方法的示例。看起来很有用
类似问题:
@Produces
@SessionScoped
public MyObject createSessionObject() {
return callSomeService();
}
这将为会话调用一次,第一次访问。具体来说,您需要的生产者方法如下所示:
@Produces
@SessionScoped
public MyObject createSessionObject() {
return callSomeService();
}
这将为会话调用一次,即第一次访问