一.首先使用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支持多文档块方式

  使用"---"进行文档的间隔

  

  1. #配置profile的多环境支持
  2. server:
  3. port: 8080
  4. #激活指定运行环境
  5. spring:
  6. profiles:
  7. active: prod
  8. ---
  9. server:
  10. port: 8081
  11. spring:
  12. profiles: dev
  13.  
  14. ---
  15. server:
  16. port: 8082
  17. spring:
  18. 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中的配置的更多相关文章

  1. Spring Boot 中如何配置 Profile

    本人免费整理了Java高级资料,涵盖了Java.Redis.MongoDB.MySQL.Zookeeper.Spring Cloud.Dubbo高并发分布式等教程,一共30G,需要自己领取.传送门:h ...

  2. Spring Boot(二):Spring Boot中的配置参数

    Spring Boot 配置参数 Spring Boot 帮助我们完成了许许多多的自动化配置 如果我们需要根据自己的需求修改配置 也是可以的 可以使用.properties 和 .yml 格式配置 这 ...

  3. Spring Boot中如何配置线程池拒绝策略,妥善处理好溢出的任务

    通过之前三篇关于Spring Boot异步任务实现的博文,我们分别学会了用@Async创建异步任务.为异步任务配置线程池.使用多个线程池隔离不同的异步任务.今天这篇,我们继续对上面的知识进行完善和优化 ...

  4. Spring Boot 中的静态资源到底要放在哪里?

    当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥Spring Boot 中的静态资源加载问题:"松哥,我的HTML页面好像没有样式?& ...

  5. spring boot日志管理配置

    spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J,Log4J2和Logback.每种L ...

  6. Spring Boot2 系列教程(十一)Spring Boot 中的静态资源配置

    当我们使用 SpringMVC 框架时,静态资源会被拦截,需要添加额外配置,之前老有小伙伴在微信上问松哥 Spring Boot 中的静态资源加载问题:"松哥,我的 HTML 页面好像没有样 ...

  7. 自定义spring boot的自动配置

    文章目录 添加Maven依赖 创建自定义 Auto-Configuration 添加Class Conditions 添加 bean Conditions Property Conditions Re ...

  8. Spring Boot中的静态资源文件

    Spring Boot中的静态资源文件 1.SSM中的配置 2.Spring Boot 中的配置 2.1 整体规划 2.2 源码解读 2.3 自定义配置 2.3.1 application.prope ...

  9. Spring Boot中使用时序数据库InfluxDB

    除了最常用的关系数据库和缓存之外,之前我们已经介绍了在Spring Boot中如何配置和使用MongoDB.LDAP这些存储的案例.接下来,我们继续介绍另一种特殊的数据库:时序数据库InfluxDB在 ...

随机推荐

  1. 教师专用录微课及剪辑软件推荐-camtasia中文汉化破解版免费下载及使用教程

    教师专用录微课软件,微课制作软件是一款能够制作文字.图形.动画.音视频等的软件,支持对ppt.word.flash的导入和录制,实时同步录制操作区文字.图形.动画.音视频.鼠标轨迹.声音及外部语音等动 ...

  2. javascript常见面试题之一:数组的冒泡排序;

    var arr=[32,2,7,78,90,10]; //外层循环控制轮数: for (var i = 0; i < arr.length; i++) { //内层循环控制次数: for (va ...

  3. instanceof语法解释

    syso+alt+/  快速输出语句的按键.   1.  instanceof java的一个二元操作,和==,>,<,同一类的用法,作用是判断  左边的对象是否是右边的类的实例 ,左边是 ...

  4. AWS Lambda 借助 Serverless Framework,迅速起飞

    前言 微服务架构有别于传统的单体式应用方案,我们可将单体应用拆分成多个核心功能.每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作时不会互相影响 这种设计理念被进一步应用,就变成了无 ...

  5. 使用udev高效、动态的管理Linux设备文件

    导读: 在Linux环境中,所有的设备都以文件的形式存在,在早期的Linux版本中,/dev目录包含了了所有可能出现的设备文件,很难想象Linux用户如何从大量的设备文件中找到想要的设备文件.举个例子 ...

  6. Java学习的第十三天

    1.object类及其方法 Java类的浅层克隆,深层克隆 2.克隆很难 3.明天学习java的继承,关键字

  7. Learn day1 变量/数据类型

    1.Python 简介 (1) 1989年开发的语言,创始人范罗苏姆(Guido van Rossum),别称:龟叔(Guido). (2) python具有非常多并且强大的第三方库,使得程序开发起来 ...

  8. 简单操作elasticsearch(es版本7.6)

    简单操作elasticsearch(es版本7.6) es 官方文档 https://www.elastic.co/guide/index.html 简单操作elasticsearch主要是指管理索引 ...

  9. Docker(10)- docker create 命令详解

    如果你还想从头学起 Docker,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1870863.html 作用 创建一个新的容器但不启动它 ...

  10. [python学习手册-笔记]001.python前言

    001.python前言 ❝ 本系列文章是我个人学习<python学习手册(第五版)>的学习笔记,其中大部分内容为该书的总结和个人理解,小部分内容为相关知识点的扩展. 非商业用途转载请注明 ...