一、自动依赖管理
基本介绍:springBoot提前帮我们写好了极多的依赖及版本号,当然我们也可以自定义依赖项与版本号。
1.1 简单介绍
1、在入门案例中,springBoot的maven中引入了parent父工程
2、ctrl + 左键 parent, 发现里边还有一个祖宗parent,这个祖宗parent中,写好了极多的依赖及版本号
3、当然,我们开发不需要那么多的依赖都配置上
4、在入门springBoot中, 我们引入了web场景依赖 ,这时springBoot会从parent中取出web开发所需要的依赖及版本号
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1.2场景启动器
1、见到很多 spring-boot-starter-* : *就某种场景
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有支持的场景
https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter
4、见到的 *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。
5、所有场景启动器最底层的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
1.3如何自定义依赖项及版本号
我们引入web场景依赖后,发现默认的依赖中没有mysql驱动,此时应该怎么办呢?
1.3.1 自定义依赖项
spring-boot-starter-web中默认没有mysql驱动,此时可以自己在你项目的依赖中去写(可以不需要写版本号,因为parent已经帮我们声明了)
- 无需关注版本号,自动版本仲裁
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
1.3.2自定义版本
可以在项目maven中配置以下声明,就可以了(覆盖了原来自带的声明)
二、自动配置
springBoot帮我们自动配置很多,例如如下内容
2.1自动配置好tomcat
引入依赖后,再配置好tomcat
2.2自动配置好springMVC
引入依赖后,再配置好springMVC,
例如:
2.2.1 自动配置好常见的web配置
dispatcherServlet ,
视图解析器resolver(跳转页面),
characterEcodingFilter()(防止返回页面消息乱码 )
上传下载拦截器
..........等等
2.3 默认的包结构
主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来
想要改变扫描路径,@SpringBootApplication(scanBasePackages="com.atguigu")
2.4 按需加载
-
- SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面