注解式读取properties文件中的内容

注解式读取properties文件中的内容:

springMvc获取properties文件的注解方式:
需要的jar包:spring-beans-4.1.4.RELEASE.jar
1.首先需要在application.xml中注入:

<!--配置注解式配置文件读取-->

<bean class="org.springframework.beans.factory.config.PropertiesFactoryBean" id="configProperties">
    <property name="locations">
        <list>
            <value>classpath*:app.properties</value>
        </list>
    </property>
</bean>
<bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer" id="propertyConfigurer">
    <property name="properties" ref="configProperties">
    </property></bean>

2.app.properties文件中的内容是:
createNew=111

3.在Java的类中读取的方式是:

@Value("#{configProperties['createNew']}")
public String aaa;

其中configProperties是application.xml中注入的bean。createNew是properties文件中的键值。

注意:按照上面的配置部署到测试环境之后,服务器可以正常使用,但是在日志里 会30秒刷新一次报错。报错信息是:
WARNING: Could not lock User prefs. Unix error code 2.
Mar 29, 2016 10:37:23 AM java.util.prefs.FileSystemPreferences syncWorld
WARNING: Couldn’t flush user prefs: java.util.prefs.BackingStoreException: Couldn’t get file lock.
更改为: application.xml中改为:

<bean id="config"                     class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
        <list>
            <value>classpath:app.properties</value>
        </list>
    </property>
</bean>

或则在application.xml中配置为:

<context:property-placeholder location="classpath:app.properties" /> 

在Java的类中读取的方式是:

@Value("${createNew}")
private String createNew;

4.app.properties文件部署带测试生产环境的问题
在实际的开发过程中我们会涉及到开发环境与测试环境所需要的同一个字段的不同数据,这个时候我们就会用到.properties文件。

这里写图片描述
如上图所示。开发环境需要使用dev中的配置文件,测试环境需要用到test中的配置文件。
第一步:我们需要做的是在pom.xml文件中进行配置。

<profiles><profile>
<id>dev</id>
<activation>
  <activeByDefault>true</activeByDefault>
</activation>
<properties>
  <configuration.directory>dev</configuration.directory>
  <build.packagingExcludes></build.packagingExcludes>
</properties> </profile>
<profile>
<id>test</id>
<properties>
  <configuration.directory>test</configuration.directory>
</properties>
</profile></profiles>

第二步:在打war包的时候需要把conf配置文件中的内容一起打包。需要在pom.xml中配置。

    <build>
          <finalName>maven-springmvc</finalName>
         <resources>
  <!--表示把java目录下的有关xml文件,properties文件编译/打包的时候放在resource目录下-->
       <resource>
      <directory>${basedir}/src/main/java</directory>
      <includes>
      <include>**/*.properties</include>
      <include>**/*.xml</include>
    </includes>
  </resource>
  <resource>
    <directory>${basedir}/src/main/resources</directory>
  </resource>

 <!--以下是打包的conf中配置文件内容。-->
  <resource>
    <directory>${basedir}/conf/${configuration.directory}</directory>
    <targetPath>${project.build.directory}/classes</targetPath>
    <filtering>true</filtering>
  </resource>
</resources>
</build>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值