打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
五种方式让你在java中读取properties文件内容不再是难题

一、背景

最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题。就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,现和大家共享.

二、项目环境介绍

    Spring 4.2.6.RELEASE
    SpringMvc 4.2.6.RELEASE
    Mybatis 3.2.8
    Maven 3.3.9
    JDK 1.7
    IDEA 15.04

三、实现的五种方式

1.通过context:property-placeholder加载配置文件jdbc.properties中的内容


上面的配置和下面配置等价,是对下面配置的简化:


注意:这种方式下,如果你在spring-mvc.xml文件中有如下配置,则一定不能缺少下面的use-default-filters属性部分,参见另一篇博客:http://www.cnblogs.com/hafiz/p/5875770.html

2.使用注解的方式注入,主要用在java代码中使用注解注入properties文件中相应的value值

3.使用util:properties标签进行暴露properties文件中的内容


注意:使用上面这行配置,需要在spring-dao.xml文件的头部声明以下util声明的部分

4.通过PropertyPlaceholderConfigurer在加载上下文的时候暴露properties到自定义子类的属性中以供程序中使用


自定义类PropertyConfigurer的声明如下:


使用方式:在需要使用的类中使用@Autowired注解注入即可。

5.自定义工具类PropertyUtil,并在该类的static静态代码块中读取properties文件内容保存在static属性中以供别的程序使用


说明:这样的话,在该类被加载的时候,它就会自动读取指定位置的配置文件内容并保存到静态属性中,高效且方便,一次加载,可多次使用。

四、注意事项及建议

以上五种方式,前三种方式比较死板,而且如果你想在带有@Controller注解的Bean中使用,你需要在SpringMVC的配置文件spring-mvc.xml中进行声明,如果你想在带有@Service、@Respository等非@Controller注解的Bean中进行使用,你需要在Spring的配置文件中spring.xml中进行声明。原因请参见另一篇博客:http://www.cnblogs.com/hafiz/p/5875740.html        

我个人比较建议第四种和第五种配置方式,第五种为最好,它连工具类对象都不需要注入,直接调用静态方法进行获取,而且只一次加载,效率也高。而且前三种方式都不是很灵活,需要修改@Value的键值。

项目GitHub地址:https://github.com/hafizzhang/SSM/branches页面下的propertiesConfigurer分支。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
springboot-加载自定义的properties文件
springboot学习教程【面试+工作】
从零开始学Java-搭建SpringMVC框架
Spring Boot第二弹,配置文件怎么造?
SSM三大框架工作流程与原理详解
紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人!
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服