当前位置: 首页 > news >正文

@ComponentScan组件扫描原理

       下面是一步步模拟@ComponentScan注解的实现原理,首先需要找到扫描的包。

          转换包路径,通过Context的拓展功能解析并获取资源(获取扫描到的编译后的类路径文件)。

在com.example.demo2.b03.component中添加Bean,其中Bean4不加@Component注解。

package com.example.demo2.b03.component;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;/*** @author zhou* @version 1.0* @description TODO* @date 2025/10/5 21:58*/
@Component
public class Bean2 {private static final Logger log = LoggerFactory.getLogger(Bean2.class);public Bean2(){log.info("我被spring管理了");}
}
package com.example.demo2.b03.component;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;/*** @author zhou* @version 1.0* @description TODO* @date 2025/10/5 21:58*/
@Component
public class Bean3 {private static final Logger log = LoggerFactory.getLogger(Bean3.class);public Bean3(){log.info("我被spring管理了");}
}
package com.example.demo2.b03.component;import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;/*** @author zhou* @version 1.0* @description TODO* @date 2025/10/5 21:58*/public class Bean4 {private static final Logger log = LoggerFactory.getLogger(Bean4.class);public Bean4(){log.info("我被spring管理了");}
}

打印资源路径:

     上面是获取到编译后的类路径,继续解析注解元数据信息,判断是否加了@Component注解。

CachingMetadataReaderFactory factory = new CachingMetadataReaderFactory();

      对于派生的@Conponent注解也想要判断的话,需要再加一层校验。把bean3的@component注解换成@Controller注解。

http://www.dtcms.com/a/449865.html

相关文章:

  • 沈阳制作网站的公司网站开发要什么
  • MySQL 8.0存储引擎选型指南
  • 做移动端网站设计网站怎样制作
  • redis的哨兵机制简单问题
  • 打造自己的中秋 AR 赏月应用:实现虚实融合的节日体验
  • 建设网站学什么建设考试的报名网站
  • 色块网站设计在家做的网站编辑
  • WebRTC 入门与实战(二)之中级篇
  • pass@1是什么意思
  • 沈阳网站建设技术公司百度站长工具seo
  • 做国内电影网站赚钱不简述电子商务网站开发的主要步骤
  • InputStream和OutputStream在网络编程发挥的作用
  • CCS闪退问题---------中文系统用户名
  • 专业电竞体育数据与系统解决方案
  • 初阶运维工程师工作内容与能力体系:专业视角解析
  • 我的钢铁网网站架构林芝北京网站建设
  • OpenManus项目架构解析
  • 【HarmonyOS】消息通知
  • 网上做流量对网站有什么影响asp.net 做网站实例
  • 深圳建设资格注册中心网站网站建设采用的技术
  • gRPC从0到1系列【22】
  • 闹钟定时器(Alarm Timer)初始化:构建可挂起的定时器基础框架
  • 云南公司建网站多少钱wordpress修改菜单的原始链接
  • 自己如何建设个网站首页站酷网官方入口网页版
  • 华为matebook16s 2022数字键无法使用解决方法
  • 邯郸网站建设品牌公司app和网站开发区别
  • 并查集的优化
  • LeetCode:93.最长回文子串
  • 设计作品网站有哪些宝塔建的数据库安装不了wordpress
  • 锐捷无线控制器基础配置