Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我可以将会话bean与其他注入类一起重用吗?_Java_Jakarta Ee_Dependency Injection_Ejb_Stateless Session Bean - Fatal编程技术网

Java 我可以将会话bean与其他注入类一起重用吗?

Java 我可以将会话bean与其他注入类一起重用吗?,java,jakarta-ee,dependency-injection,ejb,stateless-session-bean,Java,Jakarta Ee,Dependency Injection,Ejb,Stateless Session Bean,我有一个由消息驱动bean和两个会话bean组成的应用程序。其中一个有一个DAO对象,负责访问数据库或FTP服务器 我需要两份申请表。它们之间唯一的区别是DAO类的实例。我可以在部署阶段指定该实例吗 我的目的是避免代码重复。如果DAO只是一个POJO,那么如果您正在使用EE6,我建议使用Class env条目(如果您没有使用,则建议使用String env条目,然后自己使用Class.forName): 道班 java.lang.Class com.example.project.Defaul

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

我需要两份申请表。它们之间唯一的区别是DAO类的实例。我可以在部署阶段指定该实例吗


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

如果DAO只是一个POJO,那么如果您正在使用EE6,我建议使用Class env条目(如果您没有使用,则建议使用String env条目,然后自己使用Class.forName):


道班
java.lang.Class
com.example.project.DefaultDAO
@资源(name=“daoClass”)
私有void setDAOClass(类daoClass){
this.dao=daoClass.newInstance();
}

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

instance这个词的确切含义是什么?类文件或内存中已有的对象?我指的是内存中已有的对象。假设DAO是一个接口,我想在部署期间选择实现,这正是我所需要的。非常感谢。
<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();
}