• Spring Boot 笔记


    springBoot 注解示意图:

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

    ImportSelector  导入组件

    定义一个组件

    1. //1.Import 注解导入组件 UserConfig
    2. @Configuration
    3. @Import(People.class)
    4. public class UserConfig{
    5. }
    6. //2. 实现 ImportSleector 重写 slctImports
    7. public class People implements ImportSleector{
    8. @Override
    9. public String[] slctImports(AnnotationMtadata annotationMtadata ){
    10. // 自动注入的server
    11. return new String[]{com.csdn.service.HrmSrviceImpl}
    12. }
    13. }
    14. //3.controller
    15. public class UserController{
    16. //自动注入
    17. @Autowired
    18. private HrmSrviceImpl hrmSrviceImpl;
    19. pulbic String getUserAll(){
    20. hrmSrviceImpl.tstSeervice();
    21. return "index";
    22. }
    23. }
    24. //3.1 HrmSrviceImpl .tstSeervice
    25. public class HrmSrviceImpl{
    26. public void tstSeervice(){
    27. //
    28. }
    29. }

    ImportBeanDefinitionRegistrar 导入组件

    1. //1. 实现 ImportBeanDefinitionRegistrar
    2. public class UserDefinitionRegistrar implements ImportBeanDefinitionRegistrar{
    3. @Override
    4. public void registerBeanDefinitions(***){
    5. //***
    6. }
    7. }
    8. // 2. import 注解导入
    9. @Configuration
    10. @Import(UserDefinitionRegistrar .class)
    11. public class People {
    12. }

    Condition 导入组件

    1. //1.@ Conditional 条件注解 实现 Condition 导入bean 条件判断
    2. public class TestCondition implements Condition{
    3. @Override
    4. public boolean matches(){
    5. if(ctx.geetBeanrFactory().containsBean("user")){
    6. retrun true;
    7. }else{
    8. retrun false;
    9. }
    10. }
    11. }

    生命周期

    1. ----------正在对容器进行处理----容器后处理器-------------------
    2. ------初始化之前执行后处理postProcessBeforeInitialization----
    3. ------初始化之后执行后处理postProcessAfterInitialization----
    4. --------调用了有参构造器------
    5. -------BeanNameAware--setBeanName--------
    6. ---------setApplicationContext--------
    7. ------初始化之前执行后处理postProcessBeforeInitialization---
    8. ------InitializingBean---afterPropertiesSet初始化-------
    9. ---------init-模拟初始化方法-------
    10. ------初始化之后执行后处理postProcessAfterInitialization----
    11. -----------创建spring 容器创建完成--------------
    12. ------DisposableBean---destroy销毁时执行的方法-------
    13. ---------close模拟销毁spring容器方法-------

  • 相关阅读:
    【Python】AttributeError: module lib has no attribute X509_V_FLAG_CB_ISSUER_CHECK
    Linux:使用ssl加密网站为https
    Android动态权限详解
    多线程、多进程同时操作MMAP,会怎么样?
    有创意且简美大气的图表-堆叠极扇图
    leetCode 1539. 第 k 个缺失的正整数
    【C语言】逆置算法
    操作系统:计算机系统概述
    计算机毕业设计 基于SSM的垃圾分类管理系统(以医疗垃圾为例)的设计与实现 Java实战项目 附源码+文档+视频讲解
    ubuntu 中使用Qt连接MMSQl,报错libqsqlodbc.so: undefined symbol: SQLAllocHandle
  • 原文地址:https://blog.csdn.net/jiayou2020527/article/details/132735561