我有一個ConfigParameter
SLSB,它從ejb-jar.xml
文件讀取配置值。@Singleton bean從ejb-jar.xml讀取值
該類只有專用字段,並且每個字段都有相應的getter方法。在我的應用程序中,我有很多其他EJB使用ConfigParameter
的實例來讀取配置值。
現在,我認爲將ConfigParameter
設爲@Singleton
是個好主意,因爲它的狀態是在整個應用程序中共享的。
但在ejb-jar.xml
我可以設置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?
ConfigParameter是一個簡單的POJO,它只包含所有從環境條目檢索到的原始字符和/或字符串字段? – shelley
'COnfigParameter'是POJO用'@ Stateless'註解的。字段值通過'@Resource(name =「...」)'注入。我跟着Piotr Nowickis回答,我現在有一個Singleton – hage