春项目中如何实现读取属性文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强>春天中属性文件属性的读取与使用详解强>
实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理。例中将需配置的属性信息放在属性文件/web - inf/configInfo。属性中。
其中部分配置信息(邮件发送相关):
#邮件发送的相关配置 电子邮件。主机=smtp.163.com 电子邮件。端口=xxx 电子邮件。用户名=xxx 电子邮件。密码=xxx 电子邮件。sendFrom=xxx@163.com
在春容器启动时,使用内置bean对属性文件信息进行加载,在bean.xml中添加如下:
<强> Xml代码强>
& lt; !——春天的属性加载器,加文载性能件中的属性——比; & lt; bean id=皃ropertyConfigurer" 类=皁rg.springframework.beans.factory.config.PropertyPlaceholderConfigurer"比; & lt;属性名=發ocation"祝辞 & lt; value>/web - inf/configInfo.properties & lt;/property> & lt;属性名=癴ileEncoding"值=https://www.yisu.com/zixun/" utf - 8 "/> 豆>
属性信息加载后其中一种使用方式是在其它豆定义中直接根据属性信息的关键引用价值,如邮件发送器bean的配置如下:
<强> Xml代码强>
& lt; !——邮件发送——比; & lt; bean id=癿ailSender" 类=皁rg.springframework.mail.javamail.JavaMailSenderImpl"比; & lt;属性名=癶ost"祝辞 & lt; value> $ {email.host} & lt;/value> & lt;/property> & lt;属性名=皃ort"祝辞 & lt; value> $ {email.port} & lt;/value> & lt;/property> & lt;属性名=皍sername"祝辞 & lt; value> $ {email.username} & lt;/value> & lt;/property> & lt;属性名=皃assword"祝辞 & lt; value> $ {email.password} & lt;/value> & lt;/property> & lt;属性名=癹avaMailProperties"祝辞 & lt; props> & lt;支撑关键=癿ail.smtp.auth"祝辞true & lt;支撑关键=皊endFrom"祝辞$ {email.sendFrom} & lt;/prop> & lt;/props> & lt;/property> & lt;/bean>
另一种使用方式是在代码中获取配置的属性信息,可定义一个javabean: ConfigInfo。java,利用注解将代码中需要使用的属性信息注入;如属性文件中有如下信息需在代码中获取使用:
<强> java代码强>
#生成文件的保存路径 文件。savePath=D:/测试/#生成文件的备份路径,使用后将对应文件移到该目录 文件。backupPath=D:/测试贝克/
ConfigInfo。java中对应代码:
<强> java代码强>
@ component (“configInfo") 公开课ConfigInfo { @ value (“$ {file.savePath}“) 私人字符串fileSavePath; @ value (“$ {file.backupPath}“) 私人字符串fileBakPath; 公共字符串getFileSavePath () { 返回fileSavePath; } 公共字符串getFileBakPath () { 返回fileBakPath; } }
业务类bo中使用注解注入ConfigInfo对象:
<强> Java代码强>
@ autowired 私人ConfigInfo ConfigInfo;
需在bean。xml中添加组件扫描器,用于注解方式的自动注入:
<强> xml代码强>
& lt;上下文:component-scan基础包=癱om.my.model"/在
(上述包模型中包含了ConfigInfo类)。
通过得到方法获取对应的属性信息,优点是代码中使用方便,缺点是如果代码中需用到新的属性信息,需对ConfigInfo。java做相应的添加修改。
关于春天项目中如何实现读取属性文件问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。