Java 有没有办法通过jndi在<;中传递文件位置;util:properties/>;标签?

Java 有没有办法通过jndi在<;中传递文件位置;util:properties/>;标签?,java,spring,jndi,Java,Spring,Jndi,我在spring-config.xml中声明了以下属性 <util:properties id="ldap" location="classpath:com/company/project/resources/some_configuration.properties"/> 然后,我在服务实现中使用spring@Value注释将属性中包含的值注入到一些成员变量中(这种方法是我在服务实现中使用过的最干净/最优雅的方法,如果可能的话,我不想更改它) 这个布局的问题是,我必须修改属性

我在spring-config.xml中声明了以下属性

<util:properties id="ldap" location="classpath:com/company/project/resources/some_configuration.properties"/>

然后,我在服务实现中使用spring
@Value
注释将属性中包含的值注入到一些成员变量中(这种方法是我在服务实现中使用过的最干净/最优雅的方法,如果可能的话,我不想更改它)

这个布局的问题是,我必须修改属性文件并为每个部署环境(质量、生产等)重新生成应用程序war,服务器管理员希望通过JNDI配置
某些配置.properties
路径(应用程序服务器是JBoss)

如何通过jndi在
标记中传递文件位置

如有任何帮助和建议,将不胜感激

编辑: 如果有人提出一个解决方案,我可以这样做,那就太好了:


或者类似的

我正在寻找类似的答案,此答案将帮助您使用PropertyPlaceHolderConfigure:


在您的情况下,您需要在bean中配置
属性PlaceHolderConfigure
,然后只需进行以下更改:

<util:properties id="ldap"
  location="classpath:x/y/z/resources/${environment}.properties"/>


其中,
${environment}
将由如下环境变量设置:
-Denvironment=dev

我正在寻找类似的内容,此答案将帮助您使用PropertyPlaceHolderConfigure:


在您的情况下,您需要在bean中配置
属性PlaceHolderConfigure
,然后只需进行以下更改:

<util:properties id="ldap"
  location="classpath:x/y/z/resources/${environment}.properties"/>


其中,
${environment}
将由如下环境变量设置:
-Denvironment=dev

旧帖子,但这可能对其他人有用:

<jee:jndi-lookup id="ldapProps" jndi-name="your/jndi" resource-ref="true"/>
<util:properties id="ldap" location="file://#{ldapProps}/some_configuration.properties" />

旧帖子,但这可能对其他人有用:

<jee:jndi-lookup id="ldapProps" jndi-name="your/jndi" resource-ref="true"/>
<util:properties id="ldap" location="file://#{ldapProps}/some_configuration.properties" />


如果您使用的是Maven2,您可以使用
prepare resources
maven的阶段中的
maven antrun插件
按maven配置文件(dev1、dev2、测试、预处理、生产)过滤
一些配置属性。我以前做过。谢谢,但是我没有在项目中使用Maven2。你在使用哪些开发工具?来自WTPCheck的Apache Ant?Eclipse动态Web项目下面是我的答案:如果您使用的是Maven2,您可以使用
maven antrun插件
on
prepare resources
maven的阶段,根据maven概要文件(dev1、dev2、test、prepod、prod)过滤您的
一些配置属性。我以前做过。谢谢,但是我没有在项目中使用Maven2。你在使用哪些开发工具?来自WTPCheck的Apache Ant?Eclipse动态Web项目我的回答如下:谢谢,我正在检查,但我仍然想知道jndiI是否有一种方法可以像这种方法一样执行相同的操作,但是如果服务器配置发生更改(端口、ip、域等),我必须编辑属性文件并重新生成war,管理团队不想做的事情,他们想编辑一个外部文件,这样他们就不需要开发人员的帮助(如果他们可以通过jndi来完成这项任务,这将是一个巨大的优势,因为他们已经有一个支持jndi的服务器)谢谢,我正在检查它,但是我仍然想知道jndiI是否有一种方法可以像这种方法一样做到这一点,但是如果服务器配置发生变化(端口、ip、域等),我必须编辑属性文件并重新生成war,这是管理团队不希望看到的,他们想要编辑一个外部文件,这样他们就不需要开发人员的帮助(如果他们可以通过jndi来完成这项任务,这将是一个巨大的优势,因为他们已经有了一个支持jndi的服务器)谢谢,这就是我要找的!我们一直在求助于其他方法来实现类似的目标-我今天对我们的解决方案感到非常沮丧,以至于有足够的动力让JNDI工作:)谢谢,这就是我想要的!我们一直在使用其他方法来实现类似的目标-我今天对我们的解决方案感到非常沮丧,以至于有足够的动力让JNDI工作:)