从applicationContext.xml中读取环境变量

我需要读取我的web.xml中定义的环境变量

 Path Repositorio NFS PATH_ENV java.lang.String C:/V3  

来自我的applicationContext.xml

    

我怎样才能做到这一点 ?


最后我做了下一个:

1在context.xml中定义环境变量:

  

2在web.xml中定义env-entry

  Path Repositorio NFS PATH_ENV java.lang.String /WEB-INF/  

3在applicationContext.xml中定义

   java:comp/env/PATH_ENV          

这是正确运行的,但是如果我在以下位置定义完整路径:

 C:/V3/ 

我有下一个问题:

 java.io.FileNotFoundException: Could not open ServletContext resource [/C:/V3/aesantasa.properties] 

我无法在env-entry-value中定义完整路径为什么?

您可以使用JndiObjectFactoryBean或查找JNDI条目(环境条目和资源):

  

(要使用jee-namespace,必须声明它)。

它定义了一个名为“PATH_ENV”的spring bean,它包含(作为字符串)在环境条目中配置的路径。 您现在可以将其注入其他bean:

    

剩下的困难是连接字符串。 (不幸的是,没有JndiPlaceholderConfigurer会用JNDI环境条目替换占位符,因此您不能使用${property}/foo语法进行连接,并且必须提供另一个bean定义:

    /myprop.properties    

(代码未经测试,因为我手边没有Spring项目来测试它)

您可以使用context-param ,这将起作用。

  PATH_ENV C:/V3  

为什么不使用以下?

    

我想,我解决了类似问题。

我创建一个Windows系统变量与路径的变化部分:

 my computer --> advanced options --> environment options --> Systeme Variable 

然后用这个我在Spring AppContext上完成这样的路径:

    file:${PARENT_PATH}/conf/dev/jdbc.properties    

我不知道是否真的有帮助,但对我来说是有效的