如何从 EJB 中访问部署参数



在Java EE 6 Web应用程序中,我想从EJB中访问部署参数(字符串值)。

我知道我可以在描述符中定义一个上下文参数web.xml并且当我在JSF bean中时,我将能够通过javax.faces.context.ExternalContext#getInitParameterMap()访问它,并且通过Servlet内的getServletContext(),但事实并非如此,因为我处于EJB中。

所以,问题是:是否有任何标准(可能干净)的方式来实现这一目标?

经过进一步的研究,我发现了web.xmlenv-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

最新更新