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在 ...
随机推荐
- linux压缩和解压文件命令
tar 解包:tar zxvf filename.tar 打包:tar czvf filename.tar dirnamegz命令 解压1:gunzip filename.gz 解压2:gzi ...
- Vue.js 学习笔记之六:构建更复杂的组件
在掌握了如何构建与编译 Vue 组件的基础知识之后,接下来就可以试着来构建一些更具有实际用处的复杂组件了.为了赋予组件更具实用性的后面,首先要做的就是让这些组件具备监听用户自定义事件的能力,并且允许用 ...
- Redis发布订阅使用方法
Redis发布订阅 发布订阅模式中发布消息的为publisher即发布者,接收消息的为subscriber即订阅者.在Redis中,所有的消息通过channel即频道进行发布,一个发布者可以向多个ch ...
- Java学习的第三十四天
1.今天复习完了第十二章 2.有很多的方法不知道什么意思,也记不清该用什么方法. 3.明天写例题.
- 什么是 session 和 cookie
cookie 大家应该都熟悉,比如说登录某些网站一段时间后,就要求你重新登录:再比如有的同学很喜欢玩爬虫技术,有时候网站就是可以拦截住你的爬虫,这些都和 cookie 有关.如果你明白了服务器后端对于 ...
- P4683 [IOI2008] Type Printer 打印机
题意描述 [IOI2008] Type Printer 打印机 几百年前的 IOI 的题目还是很好的呀. 给你一个 诡异的 打印机,它只能用已有的字符来打印,而且必须每一个都用到.(这岂不是活字印刷术 ...
- Dapr Golang HTTP 调用
Dapr Golang HTTP 调用 版本介绍 Go 版本:1.15 Dapr Go SKD 版本:0.11.1 工程结构 从上图可知,新建 3 个 Go 启动项目,cmd 为启动项目目录,其中 c ...
- XJOI 夏令营501-511NOIP训练18 高二学堂
在美丽的中山纪念中学中,有座高二学堂,同样也是因为一个人,让它们变 成了现在这个样子~那就是我们伟大的级主任.因为他,我们又迎来了一个木有电影,只有对答案的段考日:又迎来了一个不是大礼拜,而是小礼拜的 ...
- 查看并配置JAVA_HOME
转载自https://blog.csdn.net/weixin_41713592/article/details/79941418which java [root@host2 hadoop-1.1.2 ...
- tensorflow-gpu2.1.0报错 so returning NUMA node zero解决办法
>>> print('Default GPU Device: {}'.format(tf.test.gpu_device_name()))2020-06-06 10:14:08.92 ...