Spring Boot 笔记

2023-11-11

springBoot 注解示意图:

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

ImportSelector  导入组件

定义一个组件

//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 导入组件

//1. 实现 ImportBeanDefinitionRegistrar 
public class UserDefinitionRegistrar implements ImportBeanDefinitionRegistrar{
    @Override
    public void registerBeanDefinitions(***){
        //***
    }
}



// 2. import 注解导入

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

Condition 导入组件

//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容器方法-------

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring Boot 笔记 的相关文章

随机推荐

  • kubeadm安装k8s

    1 禁用防火墙 systemctl stop firewalld systemctl disable firewalld 2 禁用SELINUX 执行如下命令 vim etc sysconfig selinux 修改文件中的SELINUX为
  • Magento2.x中文语言包及安装使用

    下载 magento2中文语言包 安装 上传到mage2 store app i18n Magento zh Hans CN文件夹 备注 mage2 store vendor magento language zh hans cn 运行脚本
  • c++二分查找—来自编程珠玑

    c 二分查找 来自编程珠玑 二分查找法 Binary search algorithm 是一个很常见的算法 从 编程珠玑 里再次看到时又有新的收获 直接看代码吧 下面是常见的实现代码 int binary search int a int
  • linux vim使用

    读本文之前请注意 1 本文的目标是提供一些vim的使用技巧 利用这些技巧可以提高vim的操作效率 部分技巧在vi上也可以使用 但是现在基本上都是用vim了 2 本文是整理和总结使用技巧 而非讲解vim入门 因此不会涉及最基本的使用 例如如何
  • 笔试

    文章目录 前言 27 时钟抖动jitter 时钟偏移skew 28 EDA开发工具 29 时序约束 30 DMA 31 乒乓buffer 32 BRAM DRAM 33 设计描述方式 34 延迟设计 35 DDR带宽计算 总结 往期精彩 前
  • xml建模包括以下_建模干货,1分钟速学,Photoscan空三结果完美导入CC

    关注公众号 三维前沿 获取更多倾斜摄影 激光点云资讯 相信大家都经历过 有时CC空三总是失败或错误 最崩溃的是 一顿操作猛如虎 定睛一看原地杵 此时 Photoscan空三能力其实可优于CC 头疼的是 又不想放弃用CC来建模 所以今天 为你
  • JAVA题目~由Point类组合成Triangle类 Exp04-1

    问题描述 先定义Point类 再定义Triangle类 在Triangle类中定义三个Point对象来表示一个三角形的三个顶点 然后定义一个方法isTri 对这三个点是否能构成三角形进行判定 构造方法先调用isTri 如果三个点能够构成三角
  • VUE中 created(),mounted()与activated() 方法都是干嘛的?

    created html加载完成之前 执行 执行顺序 父组件 子组件 mounted html加载完成后执行 执行顺序 子组件 父组件 methods 事件方法执行 watch watch是去监听一个值的变化 然后执行相对应的函数 comp
  • Python爬虫-某网酒店评论数据

    前言 本文是该专栏的第6篇 后面会持续分享python爬虫案例干货 记得关注 本文以某网的酒店数据为例 采集对应酒店的评论数据 具体思路和方法跟着笔者直接往下看正文详细内容 附带完整代码 注意 本文的案例 数据集 选用的是本专栏上一篇 Py
  • 教程篇(7.2) 03. 第2层设计 & FortiSwitch ❀ Fortinet网络安全专家 NSE6

    在本课中 你将了解最常见的FortiSwitch拓扑 以及FortiSwitch上可用的不同环路预防协议和方法 在这节课中 你将学习上图显示的主题 通过展示FortiSwitch拓扑的能力 你应该能够确定最适合你的网络设计需求的拓扑 当涉及
  • chisel-book-chinese

    chisel book chinese 蓝奏云地址 https wwu lanzoue com isdim08x8x5i
  • 王爽老师汇编13.3对int iret和栈的深入理解 在屏幕中间显示80个叹号字符

    6666 问题 用7ch中断例程完成loop指令的功能 个人自学思考编写的 不知道和书中的要表达的意思是否相同 先编译运行第一个代码 再编译运行第二个显示代码 下面为写入内存0 200出的中断代码 iret指令为跳转指令 跳转到显示代码处
  • 音频wav mp3 批量转文本

    作为一个业余的软件开发爱好者 我又捣鼓了一个有意思的小东西 使用完全免费哈 使用了目前已有的音频识别的深度学习网络 然后封装成了一个单独的模块 使用的方法就是下载软件 然后打开音频所在的文件夹就行了 会自动扫描wav mp3 后缀结尾的文件
  • OSI七层模型与TCP/IP五层模型

    1 OSI open system interconnection 七层模型 OSI模型为开放式系统互联参考模型 是一个逻辑上的定义和规范 把网络从逻辑上划分为了7层 每一层都有相应的物理设备 OSI模型是一种框架性的设计方法 其主要功能是
  • .net grpc简单使用

    本文提供一个最简单的grpc demo 来模拟一个本地应用使用grpc的方式去调用一个远程的服务 文章目录 首先创建一个grpc项目来模拟远程服务 再创建一个项目来调用服务 如果需要在web api项目而不是控制台程序中调用远程服务 首先创
  • 【Github】GPT2-Chinese:中文的GPT2训练代码

    推荐一个Github项目 Morizeyao GPT2 Chinese Chinese version of GPT2 training code using BERT tokenizer 作者是AINLP交流群里的杜则尧同学 提供了一份中
  • 排阻的封装尺寸

    http arlen opcom blog 163 com blog static 33775037201011144225518 0402封装 0603封装 1 电阻封装尺寸与功率关系 通常来说 0201 1 20W 0402 1 16W
  • MATLAB与当今时代的意义

    对于现在的工科生来说 MATLAB 是必不可少的工具 其必要性可能仅次于 Office 了 如果你想在谷歌工作 确保你会用MATLAB 谷歌产品高级副总裁Jonathan Rosenberg认为 对于学生而言 掌握如何使用MATLAB将为其
  • 内存卡受损文件如何恢复

    现在的手机 你不用担心内存不够用 因为我们都有内存卡 一个8g内存的手机用内存卡扩到32g 64g都不成问题 而且存到内存卡上的资源还不耽误手机运行 简直一举两得 手机内存卡和很多卡片是一样的 u盘文件恢复工具 http mydown ye
  • Spring Boot 笔记

    springBoot 注解示意图 SpringBootApplication EnableAutoConfiguration 导入组件类 Import AutoConfigurationImportSelector class 调用方法 s