博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring用到properties的几种情况与相应配置
阅读量:6893 次
发布时间:2019-06-27

本文共 1545 字,大约阅读时间需要 5 分钟。

  hot3.png

Spring项目开发中用到属性配置文件的地方不少,目前我使用到的有两种情况。

1.将属性配置文件的内容放入到另一个配置文件中,比如数据库的jdbc配置。

这中情况比较好处理:

这样就可以使用config.properties文件配置的信息,value获取方式为

${key}

2.需要在spring 管理的bean种获得properties配置的信息。

(方式1)我之前再网络上查到的一种处理方式,是将配置文件的信息,通过注解的方式“映射”到一个bean的属性中(相当于Spring通过配置文件帮你初始化好了这个bean对象)。这个bean就能在任意Spring管理的地方使用。

关键的配置的地方:

    
        
        
            
                
classpath*:/com/foo/config.properties
            
                
        
    

bean元素需要通过注解“Value”来“初始化”

@Componentpublic class BeanConfig {@Value("#{configProperties['key1']}")private String key1;@Value("#{configProperties['key2']}")private String key2;@Value("#{configProperties['key3']}")private String key3;

(方式2)这两天接触到一个高人的开源项目,看到里面用到的一种处理Bean获取配置信息的方式。

思路是,定义一个全局配置的Bean单例,不需要spring管理,通过PropertiesLoader来接在配置文件。

private static PropertiesLoader loader = new PropertiesLoader("jeesite.properties");

然后写一个获取配置文件的通用方法。为了避免每次都不去读取配置文件,定义一个静态map将读取过的配置信息保存下来,下次就从map中读取。关键代码如下:

public static String getConfig(String key) {String value = map.get(key);if (value == null){value = loader.getProperty(key);map.put(key, value != null ? value : StringUtils.EMPTY);}return value;}

调用方式类似于

Global.getConfig("key");

总结下这两种方式:

方式1:优点如果一个项目多个模块都有自己不同的配置文件。就去比较适用,定义自己的配置文件和相应的Bean。通过注解就可以很方便的获取到想要的配置信息。缺点是如果需要增加配置信息。相应的bean也需要拓展。

方式2 :优点是增加key信息。只需要在调用的时候只需要key值对应就行。不是处女座缺点可以不计。

博客仅当个人记录和理解,文中如有问题与错误,欢迎指正和探讨。

转载于:https://my.oschina.net/sxuan/blog/534641

你可能感兴趣的文章
【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
查看>>
android EventBus详解(二)
查看>>
【sql调优】系统信息统计
查看>>
2015年上海hadoop in china见闻
查看>>
《Netty 权威指南》—— 伪异步IO编程
查看>>
02-Twisted 构建 Web Server 的 Socket 长链接问题 | 07.杂项 | Python
查看>>
胖子哥的大数据之路(12)-三张图告诉你大数据安全方案设计
查看>>
在linux上通过ssh直接登录到windows系统上,不用密码
查看>>
【JavaScript】JavaScript基础-基本数据类型与常量和关键字
查看>>
1.22 OpenSearch商业化通知
查看>>
读取复制图片文件
查看>>
数据处理平台架构中的SMACK组合:Spark、Mesos、Akka、Cassandra以及Kafka
查看>>
Android-指纹登录
查看>>
Android组件化最佳实践-ARetrofit
查看>>
利用 python 和 lint 删除项目无用资源
查看>>
node文件流导出excel且显示中文文件名
查看>>
登录和第三方授权,TCP和IP详解
查看>>
是时候开发你自己的vscode扩展插件了
查看>>
Node.js 解决Gzip下获取真实的下载进度问题
查看>>
前端工程师面试必备(持续更新中)
查看>>