从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
我不知道是否真的有帮助,但对我来说是有效的