相关推荐recommended
SpringBoot(依赖管理和自动配置)
作者:mmseoamin日期:2024-03-20

文章目录

    • 1.基本介绍
        • 1.springboot是什么?
        • 2.快速入门
          • 1.需求分析
          • 2.环境配置
            • 1.确认开发环境
            • 2.创建一个maven项目
            • 3.依赖配置 pom.xml
            • 4.文件目录
            • 5.MainApp.java (启动类,常规配置)
            • 6.HelloController.java (测试Controller)
            • 7.运行启动类
            • 8.浏览器向Conroller发送请求
            • 3.快速入门小结
              • 1.SpringBoot跟SSM的关系
              • 2.pom.xml依赖关系图
              • 3.Sping,SpringMVC,SpringBoot的关系
              • 4.约定优于配置
              • 2.依赖管理和自动配置
                  • 1.版本仲裁
                    • 1.什么是依赖管理?
                    • 2.查看SpringBoot父项目的默认依赖版本
                      • 1.pom.xml 找到springboot父工程
                      • 2.找到父工程的依赖
                      • 3.所有依赖的默认版本
                      • 3.自己指定依赖版本
                        • 1.方式一:在pom.xml中指定版本
                        • 2.方式二:在pom.xml使用 `properties`标签指定 version
                        • 2.starter场景启动器
                          • 1.基本介绍
                          • 2.依赖树
                          • 3.SpringBoot自动配置核心依赖
                          • 4.官方启动器(spring-boot开头)
                          • 5.第三方启动器
                          • 3.自动配置
                            • 1.基本介绍
                            • 2.获取ioc容器,查看SpringBoot自动配置的bean
                            • 3.SpringBoot默认扫描包
                            • 4.修改默认扫描包
                              • 1.需求分析
                              • 2.修改启动类注解,增加要扫描的包
                              • 3.启动测试
                              • 5.修改默认配置 `resources\application.properties`
                                • 1.基本介绍
                                • 2.创建一个resources\application.properties文件
                                • 3.根据SpringBoot的配置大全找到对应的配置并修改
                                • 4.关于application.properties配置文件的解释
                                • 5.自定义配置
                                • 6.SpringBoot常用配置一览
                                • 7.解读SpringBoot是从哪里读取的配置文件
                                  • ctrl + n 进入ConfigFileApplicationListener
                                  • 8.按需加载原则
                                    • 1.基本介绍
                                    • 2.autoconfigure包管理着所有的starter
                                    • 9.关于xxxAutoConfiguration,xxxProperties,application.properties的关系
                                      • 1.简要介绍
                                      • 2.查看源码
                                      • 3.debug展示ioc容器

                                        1.基本介绍

                                        1.springboot是什么?

                                        SpringBoot(依赖管理和自动配置),image-20240312085209968,第1张

                                        2.快速入门
                                        1.需求分析

                                        SpringBoot(依赖管理和自动配置),image-20240312085713750,第2张

                                        SpringBoot(依赖管理和自动配置),image-20240312085738097,第3张

                                        2.环境配置
                                        1.确认开发环境

                                        SpringBoot(依赖管理和自动配置),image-20240312085951699,第4张

                                        2.创建一个maven项目

                                        SpringBoot(依赖管理和自动配置),image-20240312093523386,第5张

                                        3.依赖配置 pom.xml
                                          
                                          
                                            spring-boot-starter-parent
                                            org.springframework.boot
                                            2.5.3
                                          
                                          
                                            
                                            
                                              org.springframework.boot
                                              spring-boot-starter-web
                                            
                                          
                                        

                                        SpringBoot(依赖管理和自动配置),image-20240312094203189,第6张

                                        4.文件目录

                                        SpringBoot(依赖管理和自动配置),image-20240312094915894,第7张

                                        5.MainApp.java (启动类,常规配置)
                                        package com.sun.springboot;
                                        import org.springframework.boot.SpringApplication;
                                        import org.springframework.boot.autoconfigure.SpringBootApplication;
                                        /**
                                         * @author 孙显圣
                                         * @version 1.0
                                         */
                                        //表示是一个springboot项目
                                        @SpringBootApplication
                                        public class MainApp {
                                            public static void main(String[] args) {
                                                //启动springboot
                                                SpringApplication.run(MainApp.class, args);
                                            }
                                        }
                                        
                                        6.HelloController.java (测试Controller)
                                        package com.sun.springboot.controller;
                                        import org.springframework.stereotype.Controller;
                                        import org.springframework.web.bind.annotation.RequestMapping;
                                        import org.springframework.web.bind.annotation.ResponseBody;
                                        /**
                                         * @author 孙显圣
                                         * @version 1.0
                                         */
                                        @Controller //仍然是spring注解
                                        public class HelloController {
                                            @ResponseBody
                                            @RequestMapping("/hello")
                                            public String hello() {
                                                return "hello, springboot";
                                            }
                                        }
                                        
                                        7.运行启动类

                                        SpringBoot(依赖管理和自动配置),image-20240312095203724,第8张

                                        8.浏览器向Conroller发送请求

                                        SpringBoot(依赖管理和自动配置),image-20240312095246334,第9张

                                        3.快速入门小结
                                        1.SpringBoot跟SSM的关系

                                        SpringBoot(依赖管理和自动配置),image-20240312100232339,第10张

                                        2.pom.xml依赖关系图

                                        SpringBoot(依赖管理和自动配置),image-20240312100126819,第11张

                                        SpringBoot(依赖管理和自动配置),image-20240312095953759,第12张

                                        3.Sping,SpringMVC,SpringBoot的关系

                                        SpringBoot(依赖管理和自动配置),image-20240312102228879,第13张

                                        4.约定优于配置

                                        SpringBoot(依赖管理和自动配置),image-20240312102936500,第14张

                                        2.依赖管理和自动配置

                                        1.版本仲裁
                                        1.什么是依赖管理?

                                        SpringBoot(依赖管理和自动配置),image-20240312103611623,第15张

                                        2.查看SpringBoot父项目的默认依赖版本
                                        1.pom.xml 找到springboot父工程

                                        SpringBoot(依赖管理和自动配置),image-20240312103754545,第16张

                                        2.找到父工程的依赖

                                        SpringBoot(依赖管理和自动配置),image-20240312103904770,第17张

                                        3.所有依赖的默认版本

                                        SpringBoot(依赖管理和自动配置),image-20240312103941381,第18张

                                        3.自己指定依赖版本
                                        1.方式一:在pom.xml中指定版本

                                        SpringBoot(依赖管理和自动配置),image-20240312104248485,第19张

                                        2.方式二:在pom.xml使用 properties标签指定 version

                                        SpringBoot(依赖管理和自动配置),image-20240312104442356,第20张

                                        SpringBoot(依赖管理和自动配置),image-20240312104911259,第21张

                                        2.starter场景启动器
                                        1.基本介绍

                                        SpringBoot(依赖管理和自动配置),image-20240312105641319,第22张

                                        2.依赖树

                                        SpringBoot(依赖管理和自动配置),image-20240312105723802,第23张

                                        3.SpringBoot自动配置核心依赖

                                        SpringBoot(依赖管理和自动配置),image-20240312105806447,第24张

                                        4.官方启动器(spring-boot开头)

                                        SpringBoot(依赖管理和自动配置),image-20240312105847048,第25张

                                        5.第三方启动器

                                        SpringBoot(依赖管理和自动配置),image-20240312105954594,第26张

                                        3.自动配置
                                        1.基本介绍

                                        SpringBoot(依赖管理和自动配置),image-20240312110856440,第27张

                                        2.获取ioc容器,查看SpringBoot自动配置的bean

                                        SpringBoot(依赖管理和自动配置),image-20240312111130938,第28张

                                        SpringBoot(依赖管理和自动配置),image-20240312111304960,第29张

                                        3.SpringBoot默认扫描包

                                        SpringBoot(依赖管理和自动配置),image-20240312111731617,第30张

                                        4.修改默认扫描包
                                        1.需求分析

                                        SpringBoot(依赖管理和自动配置),image-20240312134648079,第31张

                                        SpringBoot(依赖管理和自动配置),image-20240312134815420,第32张

                                        2.修改启动类注解,增加要扫描的包

                                        SpringBoot(依赖管理和自动配置),image-20240312135246056,第33张

                                        3.启动测试

                                        SpringBoot(依赖管理和自动配置),image-20240312135312667,第34张

                                        5.修改默认配置 resources\application.properties
                                        1.基本介绍

                                        SpringBoot(依赖管理和自动配置),image-20240312135825996,第35张

                                        2.创建一个resources\application.properties文件

                                        SpringBoot(依赖管理和自动配置),image-20240312141705437,第36张

                                        3.根据SpringBoot的配置大全找到对应的配置并修改

                                        SpringBoot(依赖管理和自动配置),image-20240312141749128,第37张

                                        4.关于application.properties配置文件的解释
                                        • 一个配置对应一个类的属性使用alt + b可以查找到对应的配置类
                                        • 对应的配置类会被注入到ioc容器中
                                          5.自定义配置

                                          SpringBoot(依赖管理和自动配置),image-20240312143551317,第38张

                                          SpringBoot(依赖管理和自动配置),image-20240312143623413,第39张

                                          6.SpringBoot常用配置一览
                                          #端口号
                                          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 
                                          
                                          7.解读SpringBoot是从哪里读取的配置文件
                                          ctrl + n 进入ConfigFileApplicationListener

                                          SpringBoot(依赖管理和自动配置),image-20240312144535194,第40张

                                          8.按需加载原则
                                          1.基本介绍

                                          SpringBoot(依赖管理和自动配置),image-20240312144722690,第41张

                                          2.autoconfigure包管理着所有的starter

                                          SpringBoot(依赖管理和自动配置),image-20240312144846230,第42张

                                          9.关于xxxAutoConfiguration,xxxProperties,application.properties的关系
                                          1.简要介绍