我有一个从文件ConfigParameter
中读取配置值的 SLSB 。ejb-jar.xml
此类只有私有字段,并且每个字段都有一个相应的 getter 方法。在我的应用程序中,我有很多其他 EJB 使用 的实例ConfigParameter
来读取配置值。
现在,我认为制作ConfigParameter
一个是个好主意@Singleton
,因为它的状态在整个应用程序中共享。
但在ejb-jar.xml
I 中只能设置session-type
为Stateful
或Stateless
。该文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:ejb="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0">
<enterprise-beans>
<session>
<ejb-name>ConfigParameter</ejb-name>
<ejb-class>myapp.util.ConfigParameter</ejb-class>
<session-type>Stateless</session-type> <!-- make this a Singleton -->
<env-entry>
<env-entry-name>adminRoleName</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>admin</env-entry-value>
</env-entry>
</session>
</enterprise-beans>
</ejb-jar>
我的问题是:
- 让这个 bean 成为单例是个好主意吗?
- 如果是,我怎样才能做到这一点?
- 为了理解:为什么不允许设置
session-type
为Singleton?