代码之家  ›  专栏  ›  技术社区  ›  a1ex07

使用@resource加载环境条目

  •  0
  • a1ex07  · 技术社区  · 15 年前

    我正在尝试加载bean运行时配置。

    @Stateless
    public class MyBean implements MyLocal{    
       @Resource String runtimeSetting1="default_value";
       //....
    }
    

    我不知道如何在应用服务器端创建自定义资源(glassfish)——我不知道应该在“工厂类”字段中输入什么。 也许有更好的方法加载配置…

    谢谢。

    1 回复  |  直到 14 年前
        1
  •  3
  •   Pascal Thivent    15 年前

    据我所知,JAVA EE的标准方式是声明 env-entry 配置数据。这适用于所有的JavaEE组件,比如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条目,或者用它的名称注入它。例如,将其注入bean中:

    @Resource(name="foo")
    private String myProperty;