使用 spring 读取 war 之外的属性文件

发布于 2024-12-12 06:26:40 字数 1045 浏览 0 评论 0原文

在此处输入代码我在 etc 文件夹中放置了一个属性文件。 “myapplication.properties”和每个子模块中的一些其他属性文件..我尝试执行以下操作

<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
    <property name="searchContextAttributes" value="true"/>
    <property name="contextOverride" value="true"/>
    <property name="ignoreResourceNotFound" value="true"/>
    <property name="locations">
        <list>
            <value>classpath:application.properties</value> 
            <value>${config}</value>
        </list>
    </property>
</bean>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean> 

我尝试执行 mvn -Dconfig=~/my.properties jetty:run

属性是从 application.properties 读取但不用于配置。

运行应用程序时,我得到的 ${jdbc.url} 不正确。该 url 存在于 my.properties 中。 如何才能实现这一目标?

谢谢

enter code hereI have a property file placed in the etc folder. "myapplication.properties" and few other property files in each sub module.. i am try to do the following

<bean class="org.springframework.web.context.support.ServletContextPropertyPlaceholderConfigurer">
    <property name="searchContextAttributes" value="true"/>
    <property name="contextOverride" value="true"/>
    <property name="ignoreResourceNotFound" value="true"/>
    <property name="locations">
        <list>
            <value>classpath:application.properties</value> 
            <value>${config}</value>
        </list>
    </property>
</bean>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreUnresolvablePlaceholders" value="true"/>
</bean> 

I am trying to do mvn -Dconfig=~/my.properties jetty:run

The properties are read from application.properties but not for config..

While running application i get the ${jdbc.url} not correct .. This url is present in my.properties ..
How can this be achieved ?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

二智少女 2024-12-19 06:26:40

这就是我所拥有的,运行它

<bean id="placeholderConfigConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="systemPropertiesModeName">
        <value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
    </property>
    <property name="ignoreUnresolvablePlaceholders">
        <value>true</value>
    </property>
</bean>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="file:${config}" />
</bean>

并在 MAVEN_OPTS 中添加 -Dconfig=/var//my.properties .. 并执行 mvn jetty:run

另一种单行解决方案我发现..而不是进行详细的配置

 <context:property-placeholder location="file:${config}"/> 

This is what I had, to run it

<bean id="placeholderConfigConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="systemPropertiesModeName">
        <value>SYSTEM_PROPERTIES_MODE_OVERRIDE</value>
    </property>
    <property name="ignoreUnresolvablePlaceholders">
        <value>true</value>
    </property>
</bean>

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location" value="file:${config}" />
</bean>

And add -Dconfig=/var//my.properties in the MAVEN_OPTS.. and did mvn jetty:run

Another one line solution I found.. instead of making verbose configuration just do

 <context:property-placeholder location="file:${config}"/> 
小矜持 2024-12-19 06:26:40

我认为这个功能在 spring 3.1 中通过新的环境抽象变得可用。有关详细信息,请参阅以下 Spring 博客:

http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/

如果 spring 3.1 不是一个选项,您可以将 spring xml 配置文件中的文件名和路径硬编码到某个众所周知的位置,然后开发人员可以对其进行符号链接。

I think this feature becomes available in spring 3.1 via the new Environment abstraction. See the following spring blog for details:

http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/.

If spring 3.1 is not an option you can hard-code the filename and path in the spring xml configuration file to some well-known location and then developers can symlink against it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文