是否可以在 JEE6 中使用 JNDI 和 @Resource 注入文件?
如果是这样,我如何在 Glassfish 中设置和 JNDI(文件)资源?
如果您的目标是按如下方式配置属性文件:
@Inject
@Resource("META-INF/aws.properties")
Properties awsProperties;
那么您想使用 WELD 扩展,此处的 WELD 文档中对此进行了说明
就像将它添加到您的 POM 一样简单
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-extensions</artifactId>
<version>${weld.extensions.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
有关程序化方法,请参阅本文。
将您的属性存储在 DB 模式表中,并使用 JPA 2.0 使用指向您的 JNDI 的 JTA 来检索它们。
在 faces-config.xml 文件中添加资源包,如下所示:
<application>
<resource-bundle>
<base-name>/YourProperties</base-name>
<var>yourProperties</var>
</resource-bundle>
</application>
在类路径或 maven 资源文件夹中添加相应的 YourProperties.properties 文件,如下所示:
在您的容器托管 bean 中添加以下代码段:
private String someString;
@PostConstruct
public void loadProperty(){
someString = ResourceBundle.getBundle("/YourProperties").getString("prop1");
}