目录
一.基础入门
1.Spring Boot 是什么?
2.SpringBoot 快速入门
2.1完成步骤
2.2快速入门小结
3.Spring SpringMVC SpringBoot 的关系
3.1梳理关系
3.2如何理解 -约定优于配置
二.依赖管理和自动配置
1.依赖管理
1.1 什么是依赖管理
1.2 修改自动仲裁/默认版本号
2.starter 场景启动器
2.1 starter 场景启动器基本介绍
2.2 官方提供的 starter
2.3第三方 starter
3.自动配置
1.自动配置基本介绍
2.SpringBoot 自动配置了哪些?
3. 如何修改默认配置
4.SpringBoot 在哪配置读取 application.properites
5.自动配置 遵守按需加载原则
2.pom.xml 引入 SpringBoot 父工程和 web 项目场景启动器
org.springframework.boot spring-boot-starter-parent 2.5.3 org.springframework.boot spring-boot-starter-web
3.MainApp.java SpringBoot 应用主程序
/*** Created with IntelliJ IDEA.** @Author: 海绵hong* @Date: 2022/11/15/10:20* @Description:* @SpringBootApplication:表示这是一个springboot的应用/项目*/
@SpringBootApplication
public class MainApp {public static void main(String[] args) {//启动springboot应用程序/项目SpringApplication.run(MainApp.class,args);}
}
4.HelloController.java 控制器
@Controller
public class HelloController {
// 写一个方法,返回hellospring boot@RequestMapping("/hello")@ResponseBodypublic String hello(){return "hello,SpringBoot";}
}
3. 引入一个 spring-boot-starter-web, 到底发生了什么? 一图胜千言
5.1.49 org.springframework.boot spring-boot-starter-web mysql mysql-connector-java
1. 自动配置 Tomcat
2. 自动配置 SpringMVC
3. 自动配置 Web 常用功能: 比如字符过滤器
4. 自 动 配 置 : 默 认 扫 描 包 结 构3.2resources\application.properties 配置大全
- SpringBoot 项目最重要也是最核心的配置文件就是 application.properties,所有的框架配 置都可以在这个配置文件中说明 - 地址: https://blog.csdn.net/pbrlovejava/article/details/82659702● 各 种 配 置 都 有 默 认 , 可 以 在 resources\application.properties 修 改 , application.properties 文件我们可以手动创建
#默认 server.port=8080
server.port=10000
#比如: 默认 spring.servlet.multipart.max-file-size=1MB
#该属性可以指定 springboot 上传文件大小的限制
#默认配置最终都是映射到某个类上,比如这里配置会映射到 MultipartProperties
#把光标放在该属性,ctrl+b 就可以定位该配置映射到的类
spring.servlet.multipart.max-file-size=10MB
配置信息都会体现到配置属性类(bean)
3.3resources\application.properties 常用配置
● 常用配置一览
#端口号 server.port=10000 #应用的上下文路径(项目路径) server.servlet.context-path=/allModel #指定 POJO 扫描包来让 mybatis 自动扫描到自定义的 POJO mybatis.type-aliases-package=com.cxs.allmodel.model #指定 mapper.xml 的路径 #(application 上配置了@MapperScan(扫面 mapper 类的路径)和 pom.xml 中放行了 mapper.xml 后, # 配 置 mapper-locations 没 有 意 义 。 如 果 mapper 类 和 mapper.xml 不 在 同 一 个 路 径 下 时 , mapper-locations 就有用了) mybatis.mapper-locations=classpath:com/cxs/allmodel/mapper #session 失效时间(单位 s) spring.session.timeout=18000 #数据库连接配置 #mysql 数据库 url mysql.one.jdbc-url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useSSL=false #mysql 数据库用户名 mysql.one.username= #数据库密码 mysql.one.password= #线程池允许的最大连接数 mysql.one.maximum-pool-size=15 #日志打印:日志级别 trace默认级别为 info,即默认打印 info 及其以 上级别的日志 #logging.level 设置日志级别,后面跟生效的区域,比如 root 表示整个项目,也可以设置为某个包下, 也可以具体到某个类名(日志级别的值不区分大小写) logging.level.com.cxs.allmodel.=debug logging.level.com.cxs.allmodel.mapper=debug logging.level.org.springframework.web=info logging.level.org.springframework.transaction=info logging.level.org.apache.ibatis=info logging.level.org.mybatis=info logging.level.com.github.pagehelper = info logging.level.root=info #日志输出路径 logging.file=/tmp/api/allmodel.log #配置 pagehelper 分页插件 pagehelper.helperDialect=mysql pagehelper.reasonable=true pagehelper.supportMethodsArguments=true pagehelper.params=count=countSql #jackson 时间格式化 spring.jackson.serialization.fail-on-empty-beans=false #指定日期格式,比如 yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名 spring.jackson.date-format=yyyy-MM-dd HH:mm:ss #指定日期格式化时区,比如 America/Los_Angeles 或者 GMT+10 spring.jackson.time-zone=GMT+8 #设置统一字符集 spring.http.encoding.charset=utf8 #redis 连接配置 # redis 所在主机 ip 地址 spring.redis.host= #redis 服务器密码 spring.redis.password= #redis 服务器端口号 spring.redis.port= #redis 数据库的索引编号(0 到 15) spring.redis.database=14 ## 连接池的最大活动连接数量,使用负值无限制 #spring.redis.pool.max-active=8 # ## 连接池的最大空闲连接数量,使用负值表示无限数量的空闲连接 #spring.redis.pool.max-idle=8 # ## 连接池最大阻塞等待时间,使用负值表示没有限制 #spring.redis.pool.max-wait=-1ms # ## 最小空闲连接数量,使用正值才有效果 #spring.redis.pool.min-idle=0 # ## 是否启用 SSL 连接. ##spring.redis.ssl=false # ## 连接超时,毫秒为单位 #spring.redis.timeout= 18000ms # ## 集群模式下,集群最大转发的数量 #spring.redis.cluster.max-redirects= # ## 集群模式下,逗号分隔的键值对(主机:端口)形式的服务器列表 #spring.redis.cluster.nodes= # ## 哨兵模式下,Redis 主服务器地址 #spring.redis.sentinel.master= # ## 哨兵模式下,逗号分隔的键值对(主机:端口)形式的服务器列表 #spring.redis.sentinel.nodes= 127.0.0.1:5050,127.0.0.1:5060
3.3resources\application.properties 自定义配置
● 还可以在 properties 文件中自定义配置,通过@Value("${}")获取对应属性值
application.properties 文件 my.website=https://www.baidu.com //某个 Bean @Value("${my.website}") private String website;
2. SpringBoot 所 有 的 自 动 配 置 功 能 都 在 spring-boot-autoconfigure 包 里 面