- @SpringBootApplication
- →@EnableAutoConfiguration
- →导入组件类@Import({AutoConfigurationImportSelector.class})
- →调用方法 selectImports()
- →1.找文件 spring-boot-autoconfigure/MEETA-INF/spring.factories
- →2.在文件中查找 EnableAutoConfiguration为key的集合,根据maven依赖导入jar包来筛选配置类
定义一个组件
- //1.Import 注解导入组件 UserConfig
- @Configuration
- @Import(People.class)
- public class UserConfig{
- }
-
- //2. 实现 ImportSleector 重写 slctImports
- public class People implements ImportSleector{
- @Override
- public String[] slctImports(AnnotationMtadata annotationMtadata ){
- // 自动注入的server
- return new String[]{com.csdn.service.HrmSrviceImpl}
- }
- }
- //3.controller
-
- public class UserController{
-
- //自动注入
- @Autowired
- private HrmSrviceImpl hrmSrviceImpl;
-
- pulbic String getUserAll(){
- hrmSrviceImpl.tstSeervice();
- return "index";
- }
-
- }
-
- //3.1 HrmSrviceImpl .tstSeervice
- public class HrmSrviceImpl{
- public void tstSeervice(){
- //
- }
- }
-
-
- //1. 实现 ImportBeanDefinitionRegistrar
- public class UserDefinitionRegistrar implements ImportBeanDefinitionRegistrar{
- @Override
- public void registerBeanDefinitions(***){
- //***
- }
- }
-
-
-
- // 2. import 注解导入
-
- @Configuration
- @Import(UserDefinitionRegistrar .class)
- public class People {
-
- }
- //1.@ Conditional 条件注解 实现 Condition 导入bean 条件判断
-
- public class TestCondition implements Condition{
- @Override
- public boolean matches(){
-
- if(ctx.geetBeanrFactory().containsBean("user")){
- retrun true;
- }else{
- retrun false;
- }
- }
- }
-
- ----------正在对容器进行处理----容器后处理器-------------------
- ------初始化之前执行后处理postProcessBeforeInitialization----
- ------初始化之后执行后处理postProcessAfterInitialization----
- --------调用了有参构造器------
- -------BeanNameAware--setBeanName--------
- ---------setApplicationContext--------
- ------初始化之前执行后处理postProcessBeforeInitialization---
- ------InitializingBean---afterPropertiesSet初始化-------
- ---------init-模拟初始化方法-------
- ------初始化之后执行后处理postProcessAfterInitialization----
- -----------创建spring 容器创建完成--------------
-
- ------DisposableBean---destroy销毁时执行的方法-------
- ---------close模拟销毁spring容器方法-------