Spring Boot读取配置的几种方式

转载自 Spring Boot读取配置的几种方式


读取application文件

在application.yml或者properties文件中添加:

info.address=USA

info.company=Spring

info.degree=high

@Value注解读取方式

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class InfoConfig1 {

    @Value("${info.address}")private String address;

    @Value("${info.company}")private String company;

    @Value("${info.degree}")private String degree;

    public String getAddress() {return address;}

    public void setAddress(String address) {this.address = address;}

    public String getCompany() {return company;}

    public void setCompany(String company) {this.company = company;}

    public String getDegree() {return degree;}

    public void setDegree(String degree) {this.degree = degree;}

}

@ConfigurationProperties注解读取方式

@Component
@ConfigurationProperties(prefix = "info")
public class InfoConfig2 {

    private String address;private String company;private String degree;

    public String getAddress() {return address;}

    public void setAddress(String address) {this.address = address;}

    public String getCompany() {return company;}

    public void setCompany(String company) {this.company = company;}

    public String getDegree() {return degree;}

    public void setDegree(String degree) {this.degree = degree;}

}

读取指定文件

资源目录下建立config/db-config.properties:

db.username=root

db.password=123456

@PropertySource+@Value注解读取方式

@Component
@PropertySource(value = { "config/db-config.properties" })
public class DBConfig1 {

    @Value("${db.username}")private String username;

    @Value("${db.password}")private String password;

    public String getUsername() {return username;}

    public void setUsername(String username) {this.username = username;}

    public String getPassword() {return password;}

    public void setPassword(String password) {this.password = password;}

}

注意:@PropertySource不支持yml文件读取。

@PropertySource+@ConfigurationProperties注解读取方式

@Component
@ConfigurationProperties(prefix = "db")
@PropertySource(value = { "config/db-config.properties" })
public class DBConfig2 {

    private String username;private String password;

    public String getUsername() {return username;}

    public void setUsername(String username) {this.username = username;}

    public String getPassword() {return password;}

    public void setPassword(String password) {this.password = password;}

}

Environment读取方式

以上所有加载出来的配置都可以通过Environment注入获取到。

@Autowired
private Environment env;

// 获取参数
String getProperty(String key);

总结

从以上示例来看,Spring Boot可以通过@PropertySource,@Value,@Environment,@ConfigurationProperties来绑定变量。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVC之修改

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.04.24ASP.NET MCV的增删查改在我前面的讲解中,我已经把前三个都说了一下,现在就只剩下修改没讲了。所以,我今天就给你们讲一下&#xff0c…

VMnet1和VMnet8 未识别的网络的解决方法

转自: https://blog.csdn.net/jackphang/article/details/8939738 我的系统是win7 64位,它居然不能识别VMnet1和VMnet8,在网上找了些资料,发现所有资料都是一样的。不过事实证明是正确的。 解决办法: 1,在…

jps命令:查看Java进程等详细信息

转载自 jps命令:查看Java进程等详细信息jps是java自带的查看java进程的命令,通过这个命令可以查看当前系统所有运行中的java进程、java包名、jar包名及JVM参数等。jps -help 可以查看命令用法。-q: 只显示VM 标示,不显示jar,class, main参数等…

MVC如何添加Model

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.04.27初步学习MVC编程模式的时候,我基本清楚了如何创建MVC,而添加model(模型)似乎还不够理解,通过学习我大概了解了…

在win10系统中安装Visual C++ 6.0的具体方法

转自: https://blog.csdn.net/qq_39235641/article/details/79102694 很多学C语言的同学很熟悉VC6.0,但是在win10系统下,VC6.0便无法打开,报错:0x0000142。这是因为汉化版本和最新的win10系统兼容性不好导致的。win10…

如何设计一个安全的登录流程

转载自 如何设计一个安全的登录流程登录是系统中最重要的一个功能之一,登录成功就能拥有系统的使用权利,所以设计一个安全的登录流程是十分必要的,那在一般登录中需要考虑哪些重要因素呢?我们一一列表一下。使用https协议进行传输…

如何导入数据模板到MVC

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.5.3在平常的生活中,我们可能需要添加大量的数据,这时一条一条地新增肯定不能满足我们的要求了,所以我们就需要批量导入数据了。现在我就来…

在左表或右表的连接字段上建立索引对左、内连接的查询效率的优化情况分析

-- 1、建表 drop table if exists dept_tbl;create table dept_tbl (rcrd_id int unsigned primary key auto_increment comment 记录编号, dept_id int unsigned not null comment 部门编号) engine innodb default charsetutf8 comment 部门表;drop table if exists emp_tb…

并发控制--悲观锁和乐观锁详解

转载自 并发控制--悲观锁和乐观锁详解背景考虑下面两个并发带来的问题:1、丢失更新:一个事务的更新结果覆盖了其它事务的更新结果,即所谓的更新丢失。2、脏读:当一个事务读取其它完成一半事务的记录时,就会发生脏读取。…

如何导出数据到Excel表格

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.5.5我们在日常的生活中常常会看到很多的数据,有时,我们不一定只是在项目里面看到数据,可能我们还要在其他的地方使用,这时我们…

mysql批量插入数据的函数和存储过程

-- 创建函数前,设置 set global log_bin_trust_function_creatorsTRUE; -- 新建函数-产生随机的字符串 drop function if exists rand_str; delimiter ## create function rand_str(n int) returns varchar(255) begin declare chars_str varchar(100) default abc…

打印水晶报表

开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.5.8我们在日常生活中常常会打印很多东西,所以我打算讲一下是怎么打印水晶报表的。 打印水晶报表其实和导出差不多,只是有一点不同。打印也用到了多条件…

Java提升篇-事务隔离级别和传播机制

转载自 Java提升篇-事务隔离级别和传播机制问题的提出为了保证并发操作数据的正确性及一致性,SQL规范于1992年提出了数据库事务隔离级别。事务隔离级别分类事务隔离级别由低往高可分为以下几类READ UNCOMMITTED,读取未提交的数据。这是最不安…

多个会话对表加表级读锁和表级写锁后的操作权限分析(表级读锁+表级写锁)

【0】README: 不论是加读锁还是写锁,必须要等到其他数据库连接关闭后才可以进行; 【1】添加表级读锁 1.1)多会话执行的时序操作分析: 1.2)session1执行的具体时序操作; mysql> select * …

如何写登录验证

如何写登录验证 开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.05.12我们都知道很多网站都会有登录的界面,目的就是要验证你的账号是否正确,不正确就不能登录,这样就能防止有其他目的的…

关于Java序列化你应该知道的一切

转载自 关于Java序列化你应该知道的一切 什么是序列化 我们的对象并不只是存在内存中,还需要传输网络,或者保存起来下次再加载出来用,所以需要Java序列化技术。 Java序列化技术正是将对象转变成一串由二进制字节组成的数组,可以通…

mysql事务基础+基于innodb的行锁+间隙锁+如何锁定行

【0】README outlines are as follows : 行锁;事务;隔离级别;行锁变表锁;间隙锁;如何锁定一行;行锁总结; 【1】行锁事务存储引擎基础 1、行锁: 偏向于 innodb 存储引擎&#xff0c…

页面跳转、嵌套

页面跳转、嵌套 开发工具与关键技术:Visual Studio、MVC 作者:幻奏 撰写时间:2019.05.16在日常浏览网页的时候,我们常常能看到很多不同样式的网页,其中我们用的最多的应该就是跳转了,点击链接跳转、点击按…

Java高级进阶:自定义ClassLoader

转载自 Java高级进阶:自定义ClassLoader 假如我们的类不在classpath下,而我们又想读取一个自定义的目录下的class,如果做呢? 读取自定义目录的类 示例读取c:/test/com/test.jdk/Key.class这个类。 package com.test.jdk;public…

mysql如何分析sql执行效率和进行效率优化

【0】如何分析mysql中sql执行较慢的问题 步骤1、观察,至少跑一天,看看生产的慢sql情况;步骤2、开启慢查询日志,设置阈值,比如超过5秒钟就是慢sql, 并将它抓取出来;步骤3、explain慢sql分析&…