Spring中使用属性文件properties的两种方式

实际项目中,通常将可配置的参数放到属性文件中,例如数据库连接信息、redis连接信息等,便于统一管理。然后通过IoC框架spring将其加载到上下文中,使得程序可以直接使用。

创建mysql.properties文件,并置于CLASSPATH路径中,如果使用maven构建工程,直接放置在resources文件夹下。文件内容:

mysql.url=jdbc:mysql://192.168.1.101:3306/demo
mysql.username=root
mysql.password=123456

在spring容器启动时,使用内置bean对属性文件信息进行加载,在applicationContext.xml中添加:

<!-- spring的属性加载器,加载properties文件中的属性 -->
<bean id="propertyConfigurer"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>mysql.properties</value>
    </property>
    <property name="fileEncoding" value="UTF-8" />
</bean>

属性信息加载后其中一种使用方式是在其它bean定义中直接根据属性信息的key引用value,如邮件发送器bean的配置: 

<!-- 配置数据源 -->
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource">
    <property name="driverClassName" value="com.mysql.cj.jdbc.Driver" />
    <property name="url" value="${mysql.url}" />
    <property name="username" value="${mysql.username}" />
    <property name="password" value="${mysql.password}" />
</bean>

另一种使用方式是在代码中获取配置的属性信息,可定义一个java bean:RedisConfig.java,利用注解将代码中需要使用的属性信息注入。如属性文件中有如下信息需在代码中获取使用: 

redis.host=192.168.1.101
redis.port=6379

RedisConfig.java对应的代码:

 1 package org.springinaction.weather.config;
 2 
 3 import org.springframework.beans.factory.annotation.Value;
 4 import org.springframework.stereotype.Component;
 5 
 6 @Component("redisConfig")
 7 public class RedisConfig {
 8 
 9     @Value("${redis.host}")
10     private String host;
11 
12     @Value("${redis.port}")
13     private String port;
14 
15     public String getHost() {
16         return host;
17     }
18 
19     public String getPort() {
20         return port;
21     }
22 }

通过get方法获取对应的属性信息:

 1 import org.springframework.context.ApplicationContext;
 2 import org.springframework.context.support.ClassPathXmlApplicationContext;
 3 import org.springinaction.weather.config.RedisConfig;
 4 
 5 public class RedisTest {
 6 
 7     public static void main(String[] args) {
 8         ApplicationContext context = new ClassPathXmlApplicationContext("spring-redis.xml");
 9         RedisConfig redisConfig = context.getBean(RedisConfig.class);
10         System.out.println(redisConfig.getHost());
11         System.out.println(redisConfig.getPort());
12     }
13 
14 }

通过get方法获取对应的属性信息,优点是代码中使用方便,缺点是如果代码中需用到新的属性信息,需对RedisConfigjava做相应的添加修改。 

转载于:https://www.cnblogs.com/warehouse/p/6885113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值