java - 我可以将 session bean 与其他注入(inject)的类一起重用吗?

标签 java jakarta-ee dependency-injection ejb stateless-session-bean

我有一个由消息驱动 bean 和几个 session bean 组成的应用程序。其中之一有一个 DAO 对象,负责访问数据库或 FTP 服务器。

我需要两个应用程序。它们之间唯一的区别是 DAO 类的实例。我可以在部署阶段指定该实例吗?

我的目的是避免代码重复。

最佳答案

如果 DAO 只是一个 POJO,那么如果您使用 EE6,我建议使用 Class env-entry(如果不是,则建议使用 String env-entry,然后自己执行 Class.forName):

<env-entry>
  <env-entry-name>daoClass</env-entry-name>
  <env-entry-type>java.lang.Class</env-entry-type>
  <!-- Specify a default, override at deployment time. -->
  <env-entry-value>com.example.project.DefaultDAO</env-entry-value>
</env-entry>

@Resource(name="daoClass")
private void setDAOClass(Class<com.example.project.DAO> daoClass) {
    this.dao = daoClass.newInstance();
}

或者,如果您的 DAO 实现是 EJB,那么您可以使用 @EJB 注入(inject),并在部署时指定绑定(bind)名称。

关于java - 我可以将 session bean 与其他注入(inject)的类一起重用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10961080/

相关文章:

java - 再次执行操作约 4 次时,尝试从结果集大小约为 12000 行填充列表,jvm 耗尽堆内存

android - Dagger 在模块上找不到可注入(inject)成员

java - 解析JSON文件(JAVA)

java - 从另一个类调用方法,出现错误

java - 应用依赖注入(inject)的正确 Spring Boot 方法是什么

c# - 如何从 ASP.NET Core 的 Main() 内部获取环境变量?

java - 从另一个类获取数据时出错

java - 无法写入核心转储。默认情况下,在Eclipse的Windows客户端版本上不启用小型转储

java - 可转换为 Java 和 XSLT 的规则或脚本语言

java - 为什么我得到 "Static Error: This class does not have a static void main method accepting String[]."即使我有它?