在Java EE 6 Web应用程序中,我想从EJB
中访问部署参数(字符串值)。
我知道我可以在描述符中定义一个上下文参数web.xml
并且当我在JSF
bean中时,我将能够通过javax.faces.context.ExternalContext#getInitParameterMap()访问它,并且通过Servlet
内的getServletContext(),但事实并非如此,因为我处于EJB
中。
所以,问题是:是否有任何标准(可能干净)的方式来实现这一目标?
经过进一步的研究,我发现了web.xml
中env-entry
注释的使用:
<env-entry>
<env-entry-name>myEnvEntry</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>MyEnvEntryValue</env-entry-value>
</env-entry>
可以从EJB
以各种方式访问env-entry
。最简单的是使用@Resource
注释(需要CDI):
@Resource(name="myEnvEntry")
private String myEnvEntry;
链接:使用 ENC 使用环境条目配置 EJB 3