SpringBoot不像之前用spring+springMVC做项目的时候,他不需要配置大量的看上去很乱很复杂的xml配置文件。在SpringBoot中你可以通过java代码和注解配置项目,也可以通过简单的几个配置文件来配置项目。

这篇学习笔记只记录下配置文件的使用,至于用java代码配置的内容下次再写。


SpringBoot配置文件

spring的配置文件有两种格式:

1、application.properties

2、application.yml

这两种文件可以选择一种来当作你项目的配置文件,但是官方推荐使用yml来配置,因为他的语法看起来更简洁和清晰,接下来我也会使用这个格式来做例子。


SpringBoot这两种配置文件写法的不同

这两种配置文件本质上是一样的,只是语法(表现形式)不同,用两个很简单的例子就可以看出".properties"格式和".yml"这两种配置文件语法的不同。

1、配置服务的端口号

application.properties文件这样写

 server.port=9014

application.yml文件这样写

 server:
   port: 8889

2、配置数据库驱动类型

application.properties文件这样写

 spring.datasource.driver-class-name=com.mysql.jdbc.Driver

application.yml文件这样写(当然这里直接配置了数据库连接池使用的是druid)

 spring:
   datasource:
     druid:
       driver-class-name: com.mysql.jdbc.Driver

上面的例子可以轻易的看出来他们的区别,yml格式的一般就是把properties的点,换成了下一行加“空格”。

所有一般会一种另一种也就会了,这里推荐使用yml格式的(看着很清爽有没有,没有啥重复的多余的代码,而且层级关系显示的很明显)。


SpringBoot配置文件application.yml格式注意点

这个格式其实没有多少语法,一般用几次,看几个例子也就会用了,但是要配置复杂的还是要研究下的。

这是我整理了几个注意点:

1、用键:  值的方式表现属性和配置的。(这里注意,“:”符号有后面一定要跟一个空格

2、使用“缩进”的方式表现层级关系。缩进了几个空格没事,但是同一层级的右边要对其。就像下面的。

3、大小写敏感。

 datasource:
     type: com.alibaba.druid.pool.DruidDataSource
     druid:
       driver-class-name: com.mysql.jdbc.Driver
       username: root
       password: 1111111

更多详细yml语法我找到个大神的文章,给个传送门:(传送门

官方的参考:(http://www.yaml.org


SpringBoot配置文件的加载

springboot的配置文件的加载是有优先级和顺序的,springboot启动的时候会默认加载一些位置的配置文件。了解一下看别人项目的时候就可以轻易的找到配置文件啦。

一、加载顺序

SpringBoot启动的时候会扫描加载下面几个位置的application.properties/application.yml文件:

1、./config——根目录(项目目录)下的一个config文件夹

2、./——根目录下面

3、classpath:/config——classpath路径下的config文件夹。这个classpath路径这里一般指的是src/main/resources/config,最好不要跟代码放一块。

4、classpath/——这个就是classpath路径了,一般就是src/main/resources。

二、加载配置的优先级

1、上面加载配置是由大到小的优先级。

2、同一目录下的文件:.properties > .yml。(还是properties优先级高点,但我还是用yml)

3、先加载的配置就会应用哪个配置,不会被后加载的覆盖。

参考大佬:(传送门


一些常用的配置例子

更新中。。。。。。。。。。。

服务配置

 server:
   #配置端口号
   port: 8174
   #配置tomcat
   tomcat:
     #配置tomcat的URI编码
     uri-encoding: UTF-8
     # tomcat的最大线程数,默认值为200
     max-threads: 100

数据库配置

 #spring相关配置
 spring:
   #配置数据源
   datasource:
     name: ds
     #配置alibaba的Drui数据库连接池,也可以换成别的,但是要别的依赖
     type: com.alibaba.druid.pool.DruidDataSource
     #配置数据库驱动
     driver-class-name: com.mysql.cj.jdbc.Driver
     #druid配置
     druid:
       #数据库基本属性
       url: jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
       username: root
       password: 123456
       #初始化的时候建立的连接数,默认为0
       initial-size: 1
       #最大链接数量
       max-active: 8
       #最小连接池数量
       min-idle: 1
       #获取连接等待超时时间
       max-wait: 60000
       # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
       timeBetweenEvictionRunsMillis: 60000
       # 配置一个连接在池中最小生存的时间,单位是毫秒
       minEvictableIdleTimeMillis: 300000
       # 配置一个连接在池中最大生存的时间,单位是毫秒
       maxEvictableIdleTimeMillis: 900000
       # 检测配置是不是链接有效
       validationQuery: SELECT 1 FROM DUAL

thymeleaf配置

 spring:
   #配置Thymeleaf模板
   thymeleaf:
     #模板模式
     mode: HTML
     #启用模板缓存,一般开发环境会把值设置为false,正式环境设置为true
     cache: false
     #模板的编码
     encoding: UTF-8
     #增加视图解析时候的前缀和后缀名,比如返回一个index,就自动组成:classpath:/templates/index.html
     prefix: classpath:/templates/
     suffix: .html

分页插件PageHelper配置

 #配置分页插件pagehelper
 pagehelper:
   #配置使用的数据库方言
   helper-dialect: mysql
   reasonable: true
   support-methods-arguments: true
   params: count=countSql
   retrunPageInfo: check

配置mybatis

 #配置mybatis
 mybatis:
   #配置扫描xxxMapper.xml配置文件的目录
   mapper-locations: classpath:/mapper/*.xml
   #配置扫描指定的包中的类配置别名。
   type-aliases-package: com.*.domain
   #加载其他的mybatis配置文件
   config-location: classpath:mybatis/mybatis-config.xml 

如果有哪里写的有问题,欢迎指出来,有啥大神的相关文章欢迎在评论区贴出(传送门)哦。

下面会写一些SpringBoot的java配置笔记。

SpringBoot学习笔记(三)——Springboot配置文件的更多相关文章

  1. SpringBoot学习笔记:读取配置文件

    SpringBoot学习笔记:读取配置文件 配置文件 在以往的项目中,我们主要通过XML文件进行框架配置,业务的相关配置会放在属性文件中,然后通过一个属性读取的工具类来读取配置信息.在SpringBo ...

  2. SpringBoot学习笔记(6)----SpringBoot中使用Servlet,Filter,Listener的三种方式

    在一般的运用开发中Controller已经大部分都能够实现了,但是也不排除需要自己实现Servlet,Filter,Listener的方式,SpringBoot提供了三种实现方式. 1. 使用Bean ...

  3. springboot学习笔记-6 springboot整合RabbitMQ

    一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿 ...

  4. springboot学习笔记:3.配置文件使用概要

    Spring Boot允许外化(externalize)你的配置,这样你能够在不同的环境下使用相同的代码. 你可以使用properties文件,YAML文件,环境变量和命令行参数来外化配置.使用@Va ...

  5. SpringBoot学习笔记三之表述层

    注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6803355920697917965/ 首先配置learn-admin-webui中的web.xml文件 配置Con ...

  6. SpringBoot学习笔记(5)----SpringBoot中异常处理的三种方法

    对于异常的处理,Spring Boot中提供默认的一个异常处理界面,如下图: 但是在实际的运用开发中,这样的页面显然是不友好的,Spring Boot也提供了自定义异常处理的方式,如下总结三种一场处理 ...

  7. SpringBoot学习笔记(6) SpringBoot数据缓存Cache [Guava和Redis实现]

    https://blog.csdn.net/a67474506/article/details/52608855 Spring定义了org.springframework.cache.CacheMan ...

  8. SpringBoot学习笔记(10)-----SpringBoot中使用Redis/Mongodb和缓存Ehcache缓存和redis缓存

    1. 使用Redis 在使用redis之前,首先要保证安装或有redis的服务器,接下就是引入redis依赖. pom.xml文件如下 <dependency> <groupId&g ...

  9. SpringBoot学习笔记(9)----SpringBoot中使用关系型数据库以及事务处理

    在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式. 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板 ...

  10. springboot学习笔记-5 springboot整合shiro

    shiro是一个权限框架,具体的使用可以查看其官网 http://shiro.apache.org/  它提供了很方便的权限认证和登录的功能. 而springboot作为一个开源框架,必然提供了和sh ...

随机推荐

  1. 前端知识之css

    css的几种引入方式 行内样式 行内式是在标记的style属性中设定css样式,不推荐大规模使用 <p style='color:red'>hello world</p> 内部 ...

  2. Acwing 蛇形矩阵

    Acwing 蛇形矩阵 package javaqq; import java.util.Scanner; public class 蛇形 { public static void main(Stri ...

  3. Chrome - 使用 开发者工具 对页面截图

    概述 使用 开发者工具 对页面截图 背景 经常需要截图 常用的截图模式有这些 窗口截图 区域截图 gif 问题 Chrome 如何截长图 firefox 好像有插件 1. 解决: 使用 Chrome ...

  4. 【HTTP与HTTPS的区别】

    目录 一.HTTP和HTTPS的基本概念 二.HTTP与HTTPS有何区别 三.HTTP与HTTPS的工作原理 四.HTTPS的优缺点 五.HTTP切换至HTTPS "超文本传输协议,即HT ...

  5. report_delay_calculation/check_timing/report_annotated_parasitics/report_analysis_coverge

    如何debug 一颗cell 或一段net 的delay,  常用的办法是用report_delay_calculation 报这颗cell 或这段net, 会得到形式如下的report, 从该rep ...

  6. .net core 删除主表,同时删除子表

    前提条件: 代码懒加载, 数据库有外键关联 var entity = context.主表.Include(o => o.子表).FirstOrDefault(p => p.Id == i ...

  7. Ubuntu 16.04执行 sudo apt-get update非常慢解决方案

    ubuntu在执行更新apt包索引 sudo apt-get update 可能遇到更新非常慢或者部分包都忽略或错误 我们应该进入到系统设置>软件与更新 选择其他站点 选择最佳服务器 然后点击关 ...

  8. LoadRunner通过火狐浏览器录制脚本后,进行回放时,回放脚本很慢

    原因:火狐浏览器在录制的时候,录制了下载插件的脚本 解决办法:在脚本中删除额外资源中的下载代码

  9. 使用node.js实现多人聊天室(socket.io、B/S)

    通过B/S架构实现多人聊天,客户端连接服务器,发送信息,服务器接收信息之后返回给客户端. 主要是通过socket.io实现浏览器和服务器之间进行实时,双向和基于事件的通信. socket.io官方文档 ...

  10. NOIP--模拟—————神奇的幻方

    神奇的幻方 题目描述 幻方是一种很神奇的 N*N 矩阵:它由数字 1,2,3,-N x N 构成,且每行.每列及两条对角线上的数字之和都相同. 当 N 为奇数时,我们可以通过下方法构建一个幻方: 首先 ...