springboot的自动配置
一、引入数据源相关的依赖报错
<!--第三方的启动器-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.17</version>
</dependency>

表示没有在applications.properties中进行数据源的配置(分别是,数据库、用户名、密码、驱动)
二、关于springboot的自动配置
1.我们定义了某一个场景的启动器。当项目加载时,就会开启这个启动器的自动配置:
会将这个启动器所属依赖里面的组件全部交给ioc容器进行管理。
package com.xq;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication//表示当前类是一个启动类
public class SpringbootProject01Application {
public static void main(String[] args) {
//帮助我们初始化一个IOC容器
ConfigurableApplicationContext context =SpringApplication.run(SpringbootProject01Application.class, args);
//获取ioc容器里面的组件名
String[] beanDefinitionNames = context.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
System.out.println(beanDefinitionName);
}
}
}
multipartResolver文件上传解析器
viewResolver视图解析器
dispatcherServlet前端控制器
characterEncodingFilter编码过滤器
......
2.如果我们有自己的组件helloController
是通过@RestController进行包扫描。这个注解位于@SpringBootApplication(表示当前类是一个启动类)核心注解的内部。
它扫描的规则是:注解所属的类及其子目录
3.springboot不会将所有场景中的资源进行自动配置。
我们只有导入对应场景的启动器(pom.xml中的依赖),那么相关的组件才会被放到ioc容器中
浙公网安备 33010602011771号