有没有办法将@Named bean注入Singleton?
这是需要注入的类
@Named
@Stateful
@ConversationScoped
public class PlaySessionBean implements Serializable {
@PersistenceContext(unitName = "test-persistence-unit", type = PersistenceContextType.EXTENDED)
private EntityManager entityManager;
....
}
bean用于视图实用程序(由Forge生成)
问题是我需要从@Startup@Singleton访问PlaySessionBean
@Startup
@Singleton
public class StartupBean {
private static final Logger LOGGER = Logger.getLogger(StartupBean.class.getName());
private EntityManager entityManager;
private static EntityManagerFactory factory =
Persistence.createEntityManagerFactory("wish-to-paris-persistence-unit");
private List<PlaySession> playSessions;
@PostConstruct
public void run() {
this.entityManager = factory.createEntityManager();
CriteriaQuery<PlaySession> criteria =
this.entityManager.getCriteriaBuilder().createQuery(PlaySession.class);
this.playSessions =
this.entityManager.createQuery(criteria.select(criteria.from(PlaySession.class)))
.getResultList();
this.entityManager.close();
}
....
但它总是失败,并抱怨说游戏会话不是一个实体
有没有办法将命名的有状态bean注入Singleton?如果没有,有什么解决办法吗?
谢谢
您正在混合CDI范围和EJB状态。我希望您选择CDI或EJB,但不要混合2。首先,两种架构之间的事务管理是不同的。此外,每个对象的生命周期完全不同。
如果要使用EJB并调用相应的会话bean,可以将@Stateful
会话bean注释为@LocalBean
,因为会话bean没有接口继承。
例子:
@Stateful
@LocalBean
public class PlaySessionBean implements Serializable {
}
然后在您的@Startup
Singleton bean上,您可以通过以下方式简单地引用它:
@EJB
private PlaySessionBean playSessionBean;
EJB会话Bean仍然是有状态的。
有关 Keras LSTM 模型的更多文档 在输入/输出对上训练模型,其中输入是生成的长度为 input_len 的均匀分布随机序列, 输出是窗口长度为 tsteps 的输入的移动平均值。input_len 和 tsteps 都在 "可编辑参数" 部分中定义。 较大的 tsteps 值意味着 LSTM 需要更多的内存来确定输入输出关系。 该内存长度由 lahead 变量控制(下面有更多详细信息)。
我在EJB模块中有一个@Stateless bean 我在同一个EJB模块中有一个@Named bean Bar#hello是从Web模块中的CDI bean调用的。 由于某些原因,Bar并没有被注入到Foo中——它总是一个空引用。我希望这会奏效。
Guice还提供了另一种映射绑定的方法,而无需创建自定义注释。 它允许使用@Named注释。 使用命名注释进行映射 bind(SpellChecker.class).annotatedWith(Names.named("OpenOffice")).to(OpenOfficeWordSpellCheckerImpl.class); 使用@Named注释进行注入 @Inject public Tex
管道用于相关过程之间的通信。 我们可以使用管道进行无关的进程通信吗,比方说,我们想从一个终端执行客户端程序,从另一个终端执行服务器程序? 答案是否定。那么我们如何才能实现无关的流程沟通,简单的答案就是命名管道。 即使这适用于相关流程,但使用命名管道进行相关流程通信也没有任何意义。 我们使用一个管道进行单向通信,使用两个管道进行双向通信。 相同条件是否适用于命名管道。 答案是否定的,我们可以使用单个
主要内容:使用@Named 注解映射,使用@Named 注解注入,Google Guice @Named 注解完整示例,输出Google Guice 还提供了另一种无需创建自定义注释即可映射绑定的方法。它允许使用@Named 注解。 使用@Named 注解映射 使用@Named 注解注入 Google Guice @Named 注解完整示例 创建一个名为 GuiceTester 的 Java 类。 GuiceTester.java 输出 编译并运行该文件,您将看到以下输出。
ember-named-yields A stop-gap for the named yields RFC and based off the experimentation here. Demo Install ember install ember-named-yields Usage Setup the named yields in your component template: {{