Spring Boot 笔记

springBoot 注解示意图:

复制代码
@SpringBootApplication
    →@EnableAutoConfiguration
    →导入组件类@Import({AutoConfigurationImportSelector.class})
    →调用方法 selectImports()
    →1.找文件 spring-boot-autoconfigure/MEETA-INF/spring.factories
    →2.在文件中查找 EnableAutoConfiguration为key的集合,根据maven依赖导入jar包来筛选配置类

ImportSelector 导入组件

定义一个组件

java 复制代码
//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(){
        //
    }
} 

ImportBeanDefinitionRegistrar 导入组件

java 复制代码
//1. 实现 ImportBeanDefinitionRegistrar 
public class UserDefinitionRegistrar implements ImportBeanDefinitionRegistrar{
    @Override
    public void registerBeanDefinitions(***){
        //***
    }
}



// 2. import 注解导入

@Configuration
@Import(UserDefinitionRegistrar .class)
public class People {
    
}

Condition 导入组件

java 复制代码
//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容器方法-------
相关推荐
橙露9 分钟前
SpringBoot 全局异常处理:优雅封装统一返回格式
java·spring boot·后端
消失的旧时光-19431 小时前
Spring Boot 入门实战(二):用户注册接口设计(Controller + DTO + Validation)
java·spring boot·接口
A-Jie-Y2 小时前
JAVA框架-SpringBoot环境搭建指南
java·spring boot
码界奇点2 小时前
基于Spring Boot的前后端分离商城系统设计与实现
java·spring boot·后端·java-ee·毕业设计·源代码管理
消失的旧时光-19433 小时前
Spring Boot 接口设计进阶:POST / PUT / DELETE 的本质区别与工程实践
spring boot·后端
MegaDataFlowers3 小时前
基于EasyCode插件的SpringBoot和Mybatis框架快速整合以及PostMan的使用
spring boot·mybatis·postman
devilnumber3 小时前
Spring Boot 2 vs Spring Boot 3:50 条核心区别 + 升级优势 + 避坑指南
java·spring boot·springboot升级
一 乐4 小时前
咖啡商城|基于springboot + vue咖啡商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·咖啡商城系统
码农周5 小时前
告别大体积PDF!基于PDFBox的Java压缩工具
java·spring boot
吕永强6 小时前
基于SpringBoot+Vue小区报修系统的设计与实现(源码+论文+部署)
spring boot·毕业设计·毕业论文·报修系统·小区报修