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容器中

posted @ 2025-04-30 12:48  f-52Hertz  阅读(23)  评论(0)    收藏  举报