Spring Boot中的配置
一.首先使用idea中的Spring Initializr快速创建一个SpringBoot应用,idea会联网自动创建,创建好的结构如下(一些没必要的文件都删了):

其中说一下几个文件夹和文件
static:这个文件夹主要用于放置一些静态资源,例如jss,css,图片之类的资源
templates:这个文件夹主要放置模板引擎,如freemark和thyleaf
application.properties:是SpringBoot的全局配置文件,名称是固定的。
SpringBoot的全局配置文件可以有两种方式:application.properties或者application.yml
二.@value与@ConfigrationProperties的区别与联系
| @value | @Configration | |
| 功能上 | 一个一个注入 | 批量注入 |
| 松散绑定 | 不支持 | 支持 |
| spEL | 支持 | 不支持 |
| JSR303数据校验 | 不支持 | 支持 |
@value与@ConfigrationProperties的使用场景
@value:如果在业务逻辑中要从配置文件中获取某个属性的值,推荐使用这个注解
三.@PropertySource注解和@ImportResource注解
@PropertySource:用于指定自定义的配置文件,之所以自定义配置文件,是因为如果把所有的配置都写在全局配置文件中,看着会比较复杂
@ImportResource:导入spring的配置文件,让配置文件里面的内容生效
官方推荐使用注解的方式进行spring的配置,只需在类上加Configuration注解,表示这是一个配置类,在类中写方法,在方法上加@bean注解,方法名默认为bean的id
,方法的返回值会添加到容器中
四.profile多环境支持
(1)多profile文件
我们在主配置文件编写的时候,名字可以为application-{profile}.properties/yml,默认使用application.properties配置文件
(2)yml支持多文档块方式
使用"---"进行文档的间隔
#配置profile的多环境支持
server:
port: 8080
#激活指定运行环境
spring:
profiles:
active: prod
---
server:
port: 8081
spring:
profiles: dev ---
server:
port: 8082
spring:
profiles: prod
(3)激活指定profile
1.在默认配置文件中指定spring.profiles.active={profile}
2.命令行
java -jar 所要运行的jar包 --spring.profiles.active={profile}
3.虚拟机参数
-Dspring.profiles.active={profile}
五.配置文件加载位置
SpringBoot在启动时会加载以下位置的application.properties或者application.yml作为SpringBoot的默认配置文件
-file:./config/
-file:./
-classpath:./config
-classpath:./
优先级由高到低,高优先级的配置会覆盖低优先级的配置,SpringBoot会从这四个位置全部加载配置文件,形成互补,即互补配置
还可以通过spring.config.location来改变默认的默认文件位置
项目打包好以后,可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置,指定配置文件会和其他四个位置加载的配置文件
一起加载,形成互补,即互补配置。
Spring Boot中的配置的更多相关文章
- Spring Boot 中如何配置 Profile
本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...
- Spring Boot(二):Spring Boot中的配置参数
Spring Boot 配置参数 Spring Boot 帮助我们完成了许许多多的自动化配置 如果我们需要根据自己的需求修改配置 也是可以的 可以使用.properties 和 .yml 格式配置 这 ...
- Spring Boot中如何配置线程池拒绝策略,妥善处理好溢出的任务
通过之前三篇关于Spring Boot异步任务实现的博文,我们分别学会了用@Async创建异步任务.为异步任务配置线程池.使用多个线程池隔离不同的异步任务.今天这篇,我们继续对上面的知识进行完善和优化 ...
- Spring Boot 中的静态资源到底要放在哪里?
当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥Spring Boot 中的静态资源加载问题:"松哥,我的HTML页面好像没有样式?& ...
- spring boot日志管理配置
spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J,Log4J2和Logback.每种L ...
- Spring Boot2 系列教程(十一)Spring Boot 中的静态资源配置
当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥 Spring Boot 中的静态资源加载问题:"松哥,我的 HTML 页面好像没有样 ...
- 自定义spring boot的自动配置
文章目录 添加Maven依赖 创建自定义 Auto-Configuration 添加Class Conditions 添加 bean Conditions Property Conditions Re ...
- Spring Boot中的静态资源文件
Spring Boot中的静态资源文件 1.SSM中的配置 2.Spring Boot 中的配置 2.1 整体规划 2.2 源码解读 2.3 自定义配置 2.3.1 application.prope ...
- Spring Boot中使用时序数据库InfluxDB
除了最常用的关系数据库和缓存之外,之前我们已经介绍了在Spring Boot中如何配置和使用MongoDB.LDAP这些存储的案例.接下来,我们继续介绍另一种特殊的数据库:时序数据库InfluxDB在 ...
随机推荐
- 理解cookie
Cookie的有效期 Cookie的maxAge决定着Cookie的有效期,单位为秒(Second).Cookie中通过getMaxAge()方法与setMaxAge(int maxAge)方法来读写 ...
- vue组件使用name属性来生成递归组件
先来个简单的数据 1 lists = [{ 2 id: 1, 3 title: '第一层', 4 children: [{ 5 id: 3, 6 title: '第二层', 7 children: [ ...
- java数据结构-12树相关概念
一.树 1.概念: 包含n(n>=0)个结点的有穷集:树有多个节点(node),用以储存元素.某些节点之间存在一定的关系,用连线表示,连线称为边(edge).边的上端节点称为父节点,下端称为子节 ...
- Java Arrays 和 List的相互转化
最近在 leetcode 刷题的时候遇到过好几次这样的情况:需要返回的数据类型是数组(Arrays),但是求解的时候并不知道数组的长度,这时候就需要先用 List 进行临时存储,最后再转化为 Arra ...
- import tensorflow 出现非法指令(核心已转储)
使用 conda install -c conda-forge tensorflow 或者 conda install -c conda-forge tensorflow-gpu 试下.
- 关于H5页面在微信浏览器中音视频播放的问题
Android 上,因为各个软件使用的浏览器渲染引擎不一样,所以视频播放的效果差异也很大,这里主要以微信为主.微信使用的是腾讯浏览器自带的X5内核. 而iOS是不允许使用第三方浏览器内核的,就是Goo ...
- .NET 5.0正式发布,功能特性介绍(翻译)
本文由葡萄城技术团队翻译并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 我们很高兴今天.NET5.0正式发布.这是一个重要的版本-其中也包括了C# ...
- Spring Cloud杜绝循环依赖
前言 大家在开发中有没有遇到过因循环依赖导致项目启动失败?在排查循环依赖的过程中有没困难?如何避免写出循环依赖的代码? 我没写过循环依赖的代码,作为稳定性负责人,我排查过多次. 有些逻辑简单的代码,循 ...
- Python学习笔记4:函数
1.函数 函数就是一段具有特点功能的.可重用的语句组. 在Python中函数是以关键词 def 开头,空格之后连接函数名和圆括号(),最后一个冒号:结尾. 函数名只能包含字符串.下划线和数字且不能以数 ...
- ssh2中的添,删,查,改。
1.spring封装的HibernateTemplate类的一些操作方法. 2.session提供的根据主键ID进行添.删.查.改的基本方法. 由session得到的hql语句 由session得到的 ...