首页 > 其他分享 >10.自动配置原理入门

10.自动配置原理入门

时间:2022-09-03 05:22:06浏览次数:62  
标签:10 入门 配置 导入 自动 原理 组件 注解 class

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication{}


======================
    

 

自动配置如何完成的 就是依靠这几个注解

SpringBootConfiguration 就是configuration 代表当前是个配置类
EnableAutoConfiguration 开启自动配置
ComponentScan 扫描包

第一个注解就是设置配置类 没啥好说的

 

第二个直接enableautoconfiguration中包含了

@AutoConfigurationPackage 进入这个注解
@Import(AutoConfigurationImportSelector.class)
public @interface EnableAutoConfiguration {}
@AutoConfigurationPackage 进入 自动配置包 注解 
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited

@Import(AutoConfigurationPackages.Registrar.class) //给容器中导入一个组件

public @interface AutoConfigurationPackage {}


//利用Registrar给容器中导入一系列组件
//将指定的一个包下的所有组件导入进来?MainApplication 所在包下。

 

可以看到导入了一个aotuconfigurationpackages.registrar.class  使用这个类来导入一系列的组件

 

 进入aotuconfigurationpackages.registrar.class 也可以看到注册bean

 

registerBeanDefinitions方法的第一个参数是注解的元信息 就是这个注解的原始位置在什么类上,

 

 那肯定中main的类上,这也解释了为啥只能在main在的包里才能创建其他资源,因为自动配置的就是main在的包


第二个参数BeanDefinitionRegistry registry


第一个参数是扫包,第二参数是扫到后注册bean  注册时自动导入了一堆的组件
进入registry方法

 

 

 

 

标签:10,入门,配置,导入,自动,原理,组件,注解,class
From: https://www.cnblogs.com/dzs894330350/p/16651871.html

相关文章

  • React + Dva + Antd + Umi 快速入门
     最近一个项目用了React+Dva+Antd+Umi 技术栈 基础框架概念React前端三大框架之一。Dva由阿里架构师sorrycc带领team完成的一套前端框架,在作者的github......
  • 4.了解自动配置原理-自动配置
    1.当导入某个场景,比如web场景,就会自动导入web相关的所有依赖   tomcat也导入了,那就说明tomcat是内嵌到springboot中了 自动配好SpringMVC引入SpringMVC全......
  • 3.了解自动配置原理-依赖版本管理
    在编写springboot的时候只需要导入starter-web,关于wab的所有依赖都进来了,为什么会进来1.父项目做依赖管理在每个项目中的pom.xml都会存在这么一个配置依赖管理<p......
  • 二、 Axios入门——Axios源码分析
    一、axios与Axios的关系从语法上来说:axios不是Axios的实例从功能上来说:axios是Axios的实例axios是Axios.prototype.request函数bind()返回的函......
  • 一、Axios入门——初认识Axios
    一、axios是什么?端最流行的ajax请求库react/vue官方都推荐使用axios发ajax请求文档:https://github.com/axios/axios二、axios特点基于xhr+pr......
  • 编译原理:编译过程概述
    编译原理概述编译,就是一个把源代码变成目标代码的过程。如果源代码编译后直接在操作系统上运行,那目标代码就是汇编代码,再通过汇编和链接的过程形成可执行文件,然后通过加......
  • 【题解】「COCI 2018.10」Teoretičar
    传送门题目大意有一个二分图,构造一种对边的染色方案,使得没有两个颜色相同的边共顶点。假设对于给定二分图的答案是\(C\),记\(X\)是大于等于\(C\)的最小的\(2\)的......
  • 6-1 简单输出整数——10分
    本题要求实现一个函数,对给定的正整数N,打印从1到N的全部正整数。函数接口定义:voidPrintN(intN);其中N是用户传入的参数。该函数必须将从1到N的全部正整数顺序打印......
  • Flask 学习-41.Flask-RESTPlus 入门到放弃
    前言Flask-restfull是flask框架开发接口的一个框架,Flask-RESTPlus是Flask-restfull升级版,功能做了一些优化,主要是可以生成swagger在线文档了。环境准备先安装Flask......
  • JS逆向入门篇1
    目标网站:https://ac.scmor.com/第一步点击关键字visit('U3kwBQctIQAjMHZdVC1xRDs5LVQqURUfKxwQGjQACBZ5VysGVytwfmVgDQBVKSMZYRpbGwxAFhYOKl5JAWZRDw4EXzwWBwMT')第二......