SpringBoot特点之依赖管理和自动装配(实例代码)
1.1依赖管理
父项目做依赖管理
自动版本仲裁:在父项目里规定了依赖的版本,只需要引入以来即可,不需要写版本号
依赖管理 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent> 他的父项目 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.3.4.RELEASE</version> </parent> 几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制
开发导入Staeter场景启动器
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.引入以来默认都可以不用写版本
2.引入非版本仲裁的jar,需要写版本号
例如:
SpringBoot2中父项目中规定mtsql版本为8.0的版本
当我们需要使用较低版本时就想要声明版本号
步骤:
1、查看spring-boot-dependencies里面规定当前依赖的版本 用的 key。
2、在当前项目里面重写配置
<properties> <mysql.version>5.1.43</mysql.version> </properties>
1.2自动装配
自动配好Tomcat
引入Tmocat依赖
配置Tmocat
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.3.4.RELEASE</version> <scope>compile</scope> </dependency>
自动配好Web常见的功能,如:字符码问题
SpringBoot帮用户配好了所欲的web开发的常见场景
默认的包结构
在主程序所在的包下以及下面的所有子包里面的组件都会被默认扫描进来
不需要像以前一样在配置文件进行配置包扫描
如果想改变扫描路径,使用@SpringBootApplication(scanBasePackages=“扫描路径”)或者
@ComponentScan在主程序下指定扫描路径
@SpringBootApplication 等同于 @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan("com.atguigu.boot")
例如:
包结构:
想要WorldController能够有效就需要重新设置包扫描,或者将此包放入主程序所在包或及其子包下
(红线就是指定包扫描)
各种配置拥有默认的配置
默认配置最终都是映射到某个类上,如:MultipartProperties
配置文件的值最终会绑定在每个类上,这个类会在容器IOC中创建对象
按需加载所有自动配置项
非常多的Starter(场景)
想要哪些自动装配有效就需要引入哪些场景,自动装配才会开启
SpringBoot所有的自动配置功能都在Spring-boot-autoconfigure包里面