0
点赞
收藏
分享

微信扫一扫

学习springboot2的第3天(2021-12-02)07-基础入门-springboot的自动配置特性

ITWYY 2022-11-21 阅读 67


学习springboot2的第3天(2021-12-02)07-基础入门-springboot的自动配置特性

自动配置

1、配置好了Tomcat

因为在依赖spring-boot-starter-web里面有:

学习springboot2的第3天(2021-12-02)07-基础入门-springboot的自动配置特性_tomcat

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>

2、配置好了Spring MVC
同理:因为在依赖spring-boot-starter-web里面有:

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.9.RELEASE</version>
<scope>compile</scope>
</dependency>

包的命名规范:

学习springboot2的第3天(2021-12-02)07-基础入门-springboot的自动配置特性_springboot2_02


学习springboot2的第3天(2021-12-02)07-基础入门-springboot的自动配置特性_spring_03


刚开始的一个HelloWorld的例子就不满足这个包的规范。

主程序所在的包(com.rtl.boot)
以及它下面的子包(com.rtl.boot.controller…)
里面所有的组件都会被默认扫描。
这就是为什么我们没有配置包扫描,但是写了@Controller注解,程序就会识别HelloController了。

这种就是默认情况。

但是也可以自己设置:

比如:

主程序:

com.rtl.boot.MainApplication

控制器类:

com.rtl.HelloController

默认情况,这个是扫描不到的。

因为HelloController组件不在主程序所在的包或者子包里面。

如果还是希望扫描到:

学习springboot2的第3天(2021-12-02)07-基础入门-springboot的自动配置特性_mvc_04


第一种方式:

这个注解加上一个属性:scanBasePackages

@SpringBootApplication(scanBasePackages = "com.rtl")

把范围扩大了,这个时候,就可以扫描到com.rtl.HelloController了

第二种写法:

因为主程序:com.rtl.boot.MainApplication
所以如果不写,单纯写一个注解的话:
@SpringBootApplication
等同于:
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(“com.rtl.boot”)

所以我们也可以写注解:
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(“com.rtl”)

各种默认的配置都是有默认值的。
默认配置最终都是映射到某一个类里面的。
这个类会在容器中创建对象。
这些自动配置项都是按需加载的。引入了哪些场景,这些场景的自动配置才会自动配置。
解释:(一步一步按住ctrl进去的)
因为我们引入了:spring-boot-starter-web
这个里面有基础:spring-boot-starter
这个里面有:spring-boot-autoconfigure

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>


举报

相关推荐

0 条评论