博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SpringBoot获取properties配置
阅读量:6601 次
发布时间:2019-06-24

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

hot3.png

前言:在项目中,很多时候需要把配置写在properties里,部署的时候也需要切换不同的环境来选择正确的配置的参数,也有时候需要将mq redis等第三方配置新建一个properties文件在项目中引用。

1.因为是Spring的环境,当然首先需要搭建好Spring环境。

package com.example;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.PropertySource;import org.springframework.core.env.Environment;import org.springframework.stereotype.Component;/** * Created by Administrator on 2016/10/13. */@Componentpublic class ValueTest {    public String name = "注入对象的的属性";    @Autowired    public Environment env;//当前环境的application.properties的 配置    @Value("注入普通字符串")//注入普通字符串    public String test1;    @Value("#{systemProperties['os.name']}")//系统属性配置    public String test2;    @Value("#{ T(java.lang.String).valueOf(111)}")//执行某个类的方法    public String test3;    @Value("#{valueTest.name}")//某个类的公有属性    public String test4;    @Value("${name}")//读取配置在PropertySourcesPlaceholderConfigurer Bean里的properties文件的值    public String test5;}

需要注意的是通过 Environment 对象只能获取 Springboot的propertie文件的参数,比如 application-dev.properties。如果是不是application开头的的配置文件,需要单独指定properties的路径

@PropertySource("classpath:config.properties")//引用其他单独的properties

如果前置一样可以统一配置

@ConfigurationProperties(prefix = "spring.wnagnian",locations = "classpath:config/xxx.properties")  

 

2.如果直接用 @Value("${name}") 来取配置的值需要配置 PropertySourcesPlaceholderConfigurer 用来引入properties文件

package com.example.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;import org.springframework.core.io.ClassPathResource;/** * Created by Administrator on 2016/10/13. */@Configurationpublic class PropertiesConfig {    @Bean    public PropertySourcesPlaceholderConfigurer createPropertySourcesPlaceholderConfigurer() {        ClassPathResource resource = new ClassPathResource("config.properties");        PropertySourcesPlaceholderConfigurer propertyPlaceholderConfigurer = new PropertySourcesPlaceholderConfigurer();        propertyPlaceholderConfigurer.setLocation(resource);        return propertyPlaceholderConfigurer;    }}

如果是Spring xml配置

classpath:config.properties

取值

@Value("#{configProperties['name']}")private String name;

转载于:https://my.oschina.net/xiaominmin/blog/1603110

你可能感兴趣的文章
腾讯云发布CDN 2.0,四大优势加速移动化进程
查看>>
《Agendashift》的作者访谈录(一)
查看>>
可执行镜像——开发环境的Docker化之路
查看>>
Instagram如何跨大洋拆分有状态服务
查看>>
微软推出Azure区块链开发套件,重点解决两大难题
查看>>
ARKit 1.5现在支持垂直平面检测和2D图像识别
查看>>
Jessica Kerr:高绩效团队简史
查看>>
InfoQ在新兴技术企业大会上对Lightbend企业架构师Kiki Carter的访谈
查看>>
API后端服务前端的模式介绍
查看>>
你以为AlphaGo只是下围棋厉害?不,它还能用来优化金融交易策略参数
查看>>
Spark Streaming 作者,Alluxio 的创始人李浩源:AI 潮流对做数据存储业务公司的挑战...
查看>>
90 后 CTO 创业 6 年,做了一件改变互联网的“小事”
查看>>
angular2 ng2-pagination 分页组件
查看>>
分布式数据库TiDB是如何结合OLTP和OLAP的?
查看>>
“软”苹果水逆的一周:杂志服务崩溃,新机型遭泄露,芯片首架离职
查看>>
头条社交新品多闪刚刚亮相,就被微信屏蔽了\n
查看>>
FreeWheel业务系统微服务化过程经验分享
查看>>
微软发布预览版SQL Server跨平台开发工具
查看>>
Python2.x 字符编码终极指南
查看>>
贝壳金控赵文乐:基于 Spring Cloud 的服务治理实践
查看>>