gpt4 book ai didi

java - PropertyPlaceholderConfigurer 与过滤器——Spring Beans

转载 作者:行者123 更新时间:2023-11-30 07:37:20 26 4
gpt4 key购买 nike

我有一个关于 PropertyPlaceholderConfigurer (org.springframework.beans.factory.config.PropertyPlaceholderConfigurer) 和我的 pom.xml 中定义的普通过滤器之间的区别的问题。

我一直在查看示例,似乎即使过滤器在 pom.xml 中被定义并标记为默认处于 Activity 状态,它们仍然在 Spring 的 applicationContext.xml 中使用 PropertyPlaceholderConfigurer。

这意味着 pom.xml 具有对 filter-LOCAL.properties 的引用,而 applicationContext.xml 具有对 application.properties 的引用,它们都包含相同的设置。

这是为什么呢?应该这样做吗?我能够在没有 application.properties 的情况下运行目标 mvn jetty:run,但是如果我向 application.properties 添加不同于 filter-LOCAL.properties 的设置,它们似乎不会覆盖。

这是我的意思的一个例子:

pom.xml

    <profiles>          <profile>              <id>LOCAL              <activation>                  <activeByDefault>true              </activation>               <properties>                  <env>LOCAL              </properties>          </profile>      </profiles>

applicationContext.xml

    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">        <property name="locations">            <list>                <value>classpath:application.properties            </list>        </property>        <property name="ignoreResourceNotFound" value="true"/>    </bean>    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">        <property name="driverClassName" value="${jdbc.driver}"/>        <property name="url" value="${jdbc.url}"/>        <property name="username" value="${jdbc.username}"/>        <property name="password" value="${jdbc.password}"/>    </bean>

application.properties和filters-LOCAL.properties的内容示例

jdbc.driver=org.postgresql.Driverjdbc.url=jdbc:postgresql://localhost/shoutbox_devjdbc.username=testerjdbc.password=tester

我能否从 applicationContext 中删除 propertyConfigurer,创建一个 PROD 过滤器并忽略 application.properties 文件,或者在部署到生产服务器时这会给我带来问题吗?

最佳答案

您应该使用 Maven 来根据您要构建的环境来选择要使用的 Spring 属性文件。

当您在 IDE 中进行测试时,除了管理依赖项之外,您应该只从测试中启动 Spring 容器,而不要将 Maven 用于其他任何事情。

关于java - PropertyPlaceholderConfigurer 与过滤器——Spring Beans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2757721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com