我正在尝试加载bean运行时配置。
@Stateless
public class MyBean implements MyLocal{
@Resource String runtimeSetting1="default_value";
//....
}
我无法找到如何在app服务器端创建自定义资源(Glassfish) - 我不知道应该在“Factory Class”字段中输入什么。 也许有更好的加载配置的方法......
感谢。
答案 0 :(得分:3)
据我所知,Java EE中的标准方法是为配置数据声明env-entry
。这适用于所有Java EE组件,如EJB 3 bean类,servlet,过滤器,拦截器,监听器类等。在此,在ejb-jar.xml
中声明类似的内容:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
<enterprise-beans>
<session>
<ejb-name>FooBean</ejb-name>
<env-entry>
<description>foobar entry</description>
<env-entry-name>foo</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>bar</env-entry-value>
</env-entry>
...
</session>
...
</enterprise-beans>
....
</ejb-jar>
然后使用JNDI查找env-entry或按名称注入它。例如,将它注入你的bean:
@Resource(name="foo")
private String myProperty;