实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理。例中将需配置的属性信息放在属性文件/WEB-INF/configInfo.properties中。 

其中部分配置信息(邮件发送相关):

  1. #邮件发送的相关配置
  2. email.host = smtp.163.com
  3. email.port = xxx
  4. email.username = xxx
  5. email.password = xxx
  6. email.sendFrom = xxx@163.com

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

  1. <!-- spring的属性加载器,加载properties文件中的属性 -->
  2. <bean id="propertyConfigurer"
  3. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  4. <property name="location">
  5. <value>/WEB-INF/configInfo.properties</value>
  6. </property>
  7. <property name="fileEncoding" value="utf-8" />
  8. </bean>

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

  1. <!-- 邮件发送 -->
  2. <bean id="mailSender"
  3. class="org.springframework.mail.javamail.JavaMailSenderImpl">
  4. <property name="host">
  5. <value>${email.host}</value>
  6. </property>
  7. <property name="port">
  8. <value>${email.port}</value>
  9. </property>
  10. <property name="username">
  11. <value>${email.username}</value>
  12. </property>
  13. <property name="password">
  14. <value>${email.password}</value>
  15. </property>
  16. <property name="javaMailProperties">
  17. <props>
  18. <prop key="mail.smtp.auth">true</prop>
  19. <prop key="sendFrom">${email.sendFrom}</prop>
  20. </props>
  21. </property>
  22. </bean>

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

  1. #生成文件的保存路径
  2. file.savePath = D:/test/
  3. #生成文件的备份路径,使用后将对应文件移到该目录
  4. file.backupPath = D:/test bak/

ConfigInfo.java 中对应代码:

  1. @Component("configInfo")
  2. public class ConfigInfo {
  3. @Value("${file.savePath}")
  4. private String fileSavePath;
  5. @Value("${file.backupPath}")
  6. private String fileBakPath;
  7. public String getFileSavePath() {
  8. return fileSavePath;
  9. }
  10. public String getFileBakPath() {
  11. return fileBakPath;
  12. }
  13. }

业务类bo中使用注解注入ConfigInfo对象:

  1. @Autowired
  2. private ConfigInfo configInfo;

需在bean.xml中添加组件扫描器,用于注解方式的自动注入:

  1. <context:component-scan base-package="com.my.model" />

(上述包model中包含了ConfigInfo类)。 

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

Spring中属性文件properties的读取与使用的更多相关文章

  1. Spring的属性文件properties使用注意

    Spring的属性文件properties使用注意 Spring 中属性文件的配置 通常我们会使用properties文件来设置一些属性,如数据库连接信息,避免进行硬编码, <bean clas ...

  2. 【转】spring管理属性配置文件properties——使用PropertiesFactoryBean|spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer

     spring管理属性配置文件properties--使用PropertiesFactoryBean 对于属性配置,一般采用的是键值对的形式,如:key=value属性配置文件一般使用的是XXX.pr ...

  3. Spring 中无处不在的 Properties

    转自:https://javadoop.com/post/spring-properties?hmsr=toutiao.io&utm_medium=toutiao.io&utm_sou ...

  4. 51. spring boot属性文件之多环境配置【从零开始学Spring Boot】

    原本这个章节是要介绍<log4j多环境不同日志级别的控制的>但是没有这篇文章做基础的话,学习起来还是有点难度的,所以我们先一起了解下spring boot属性文件之多环境配置,当然文章中也 ...

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

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

  6. Spring MVC 属性文件读取注入到静态字段

    目录(?)[-] servlet-contextxml configproperties 示例属性 ConfigInfo 对应的配置bean 使用   在项目中,有些参数需要配置到属性文件xxx.pr ...

  7. Java中如何获取spring中配置的properties文件内容

    有2种方式: 一. 1.通过spring配置properties文件 [java]  <bean id="propertyConfigurer"      class=&qu ...

  8. Spring对外部属性文件指定的某个属性进行加密、解密

    [From] http://blog.csdn.net/ethanq/article/details/7333897 在我们开发当中,经常会用到spring框架来读取属性文件的属性值,然后使用占位符引 ...

  9. Spring配置属性文件

    在项目开发阶段和交付阶段数据库的连接信息往往是不同的,可以把这些信息写成属性文件,再在Spring中导入即可引用 jdbc.properties属性文件如下: jdbc.driverClassName ...

随机推荐

  1. ACM/ICPC 之 BFS-简单障碍迷宫问题(POJ2935)

    题目确实简单,思路很容易出来,难点在于障碍的记录,是BFS迷宫问题中很经典的题目了. POJ2935-Basic Wall Maze 题意:6*6棋盘,有三堵墙,求从给定初始点到给定终点的最短路,输出 ...

  2. ACM/ICPC 之 BFS(离线)+康拓展开(TSH OJ-玩具(Toy))

    祝大家新年快乐,相信在新的一年里一定有我们自己的梦! 这是一个简化的魔板问题,只需输出步骤即可. 玩具(Toy) 描述 ZC神最擅长逻辑推理,一日,他给大家讲述起自己儿时的数字玩具. 该玩具酷似魔方, ...

  3. MongoDB 分片管理(不定时更新)

    背景: 通过上一篇的 MongoDB 分片的原理.搭建.应用 大致了解了MongoDB分片的安装和一些基本的使用情况,现在来说明下如何管理和优化MongoDB分片的使用. 知识点: 1) 分片的配置和 ...

  4. 去掉mysql数据库字段中的个别字符

     update 表名 set 列名 = REPLACE (mcategory,"要去掉的字符","") where 列名 like "%要去掉的字符% ...

  5. Maven 3.3.3 Win10环境下的使用实例(中)

    继上一篇文章介绍了Maven在Windows中的安装,本文将介绍 Maven 的核心概念. POM (Project Object Model) Maven 插件 Maven 生命周期 Maven 依 ...

  6. URAL 2019 Pair: normal and paranormal (贪心) -GDUT联合第七场

    比赛题目链接 题意:有n个人每人拿着一把枪想要杀死n个怪兽,大写字母代表人,小写字母代表怪兽.A只能杀死a,B只能杀死b,如题目中的图所示,枪的弹道不能交叉.人和怪兽的编号分别是1到n,问是否存在能全 ...

  7. windows server 2008 配置安装AD 域控制器

    工作需要,搞起AD域来,具体配置如下: 配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 配 ...

  8. mysql常用函数整理

    一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ABS(x) 返回x的绝对值 ) -- 返回1 CEIL(x),CEILING(x) 返回大于或等于x的最小整数 SELECT CEIL( ...

  9. September 21st 2016 Week 39th Wednesday

    Don't try so hard, the best things come when you least expect them. 不要着急,最好的总会在最不经意的时候出现. Always tur ...

  10. java Http原生 Get 和Post 支持代理认证

    import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import ...