springBoot 自动配置机制

springBoot 自动配置机制

自动配置的tomcat、springmvc等

导入场景,容器中就会自动配置好这个场景的核心组件

以前:dispatcherservlet、viewresolver、characterencodingfilter...都是自己配置的

现在:自动配置好的这些组件

验证:容器中有什么组件就有什么功能

java 复制代码
public class MainApplication {
    public static void main(String[] args) {
//        SpringApplication.run(MainApplication.class,args);
        var ico  = SpringApplication.run(MainApplication.class,args);
//        获取容器中所有组件的名字
        String[] names = ico.getBeanDefinitionNames();
//        挨个遍历 dispatcherServlet\beanNameViewResolver(视图解析)\characterEncodingFilter(字符编码)\multipartResolver(文件上传)
//        把以前配置的核心组件都配置好了
        for(String name :names){
            System.out.println("-------------------------------");
            System.out.println(name);
        }
    }
}

默认包扫描规则

@SpringBootApplication 标注的类就是主程序类

springBoot只会扫描主程序所在的包以及下面的子包,自动的component-scan功能

自定义扫描路径

@SpringBootApplication(scanBasePackages = 'com.atguigu')

@ComponentScan('com.atguigu') 直接指定扫描路径

配置默认值

配置文件的所有配置项是和某个类的对象值进行一一绑定

绑定了配置文件中每一项的类:配置属性类

比如:

ServerProperties绑定所有tomcat服务器有关的配置

MailProperties绑定了所有文件上传相关的配置

参照官方文档:java配置官方文档

按需加载自动配置

导入场景:spring-boot-starter-web

场景启动器除了会导入相关功能依赖,还会导入spring-boot-starter,基础核心的starter

spring-boot-starter中导入了自动匹配包spring-boot-autoconfigure,里面包含了各种场景的自动配置类

虽然全场景的自动配置都在spring-boot-autoconfigure这个包,但是不是全部开启的

导入那个场景启动那个场景

总结

导入场景启动器,触发spring-boot-autoconfigure这个包的自动配置生效,容器中就会具有相关场景的功能

相关推荐
huohaiyu25 分钟前
Hashtable,HashMap,ConcurrentHashMap之间的区别
java·开发语言·多线程·哈希
千叶寻-30 分钟前
正则表达式
前端·javascript·后端·架构·正则表达式·node.js
信奥卷王1 小时前
[GESP202503 五级] 原根判断
java·数据结构·算法
小咕聊编程2 小时前
【含文档+源码】基于SpringBoot的过滤协同算法之网上服装商城设计与实现
java·spring boot·后端
Zz_waiting.2 小时前
Spring 原理
java·spring·spring自动管理
瓯雅爱分享6 小时前
Java+Vue构建的采购招投标一体化管理系统,集成招标计划、投标审核、在线竞价、中标公示及合同跟踪功能,附完整源码,助力企业实现采购全流程自动化与规范化
java·mysql·vue·软件工程·源代码管理
追逐时光者8 小时前
推荐 12 款开源美观、简单易用的 WPF UI 控件库,让 WPF 应用界面焕然一新!
后端·.net
Jagger_8 小时前
敏捷开发流程-精简版
前端·后端
mit6.8248 小时前
[C# starter-kit] 命令/查询职责分离CQRS | MediatR |
java·数据库·c#
诸神缄默不语8 小时前
Maven用户设置文件(settings.xml)配置指南
xml·java·maven