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

如何制作钓鱼网站网站开发 技术方案

如何制作钓鱼网站,网站开发 技术方案,温州网站设计网站建设网站,广告公司制作Spring IOC 容器 默认注册 Bean 的 8 条规则 (Spring Framework 6.x 源码级总结)阅读提示:把下面 8 条规则背下来,再读 Spring 源码时,你会在任何一行代码里立刻知道「这个 BeanDefinition 是从哪儿来的」。1️⃣ 环境…

Spring IOC 容器 默认注册 Bean 的 8 条规则

(Spring Framework 6.x 源码级总结)

阅读提示:把下面 8 条规则背下来,再读 Spring 源码时,你会在任何一行代码里立刻知道「这个 BeanDefinition 是从哪儿来的」。


1️⃣ 环境扫描:从 启动类所在包 向下递归

  • @SpringBootApplication 内隐含 @ComponentScan 无参数 → 扫描当前包及其子包。
  • 源码位置:ComponentScanAnnotationParser#parse()ClassPathBeanDefinitionScanner#doScan()

2️⃣ 类级别注解 自动注册

遇到下列注解即注册为 singleton Bean:

  • @Component(含 @Service@Repository@Controller 等元注解)
  • @Configuration(特殊:还会生成 CGLIB 代理,见规则 4)
  • @Bean 方法所在类如果被 @Configuration 标注,则方法返回值也被注册。

3️⃣ @Bean 方法 注册规则

  • 作用域:默认 singleton;可通过 @Scope 覆盖。
  • 名字
    • 显式 value/name → 直接使用
    • 空 → 方法名首字母小写
  • 重载保护:同名 Bean 后注册的覆盖先注册的(DefaultListableBeanFactory#registerBeanDefinition 抛异常 → 允许覆盖开关 spring.main.allow-bean-definition-overriding=true)。

4️⃣ @Configuration 特殊逻辑

  • 类本身注册为 lite @Component
  • 同时注册 ConfigurationClassPostProcessor,它会:
    1. 解析 @Bean 方法
    2. 解析 @Import(普通类、ImportSelector、ImportBeanDefinitionRegistrar)
    3. 解析 @ComponentScan
    4. 生成 CGLIB 代理 保证 @Bean 方法内部依赖仍是单例。

5️⃣ @Import 的三类导入

类型注册方式示例
普通类直接注册 singleton@Import(MyConfig.class)
ImportSelectorselectImports() 返回 String[]@EnableCaching
ImportBeanDefinitionRegistrar手动 registry.registerBeanDefinition()@EnableAspectJAutoProxy

6️⃣ SPI 机制spring.factories & META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

  • Spring Boot 启动时读取 spring.factoriesEnableAutoConfiguration 列表
  • 每个自动配置类内部再用 @Configuration + @Bean 注册大量基础设施(DataSource、WebMvc、Security…)。

7️⃣ FactoryBean & BeanFactoryPostProcessor

  • FactoryBean#getObject() 的返回值被注册,名字为 &beanName(取实际对象去掉 &)。
  • BeanFactoryPostProcessor(如 PropertySourcesPlaceholderConfigurer)可在注册阶段 修改新增 BeanDefinition。

8️⃣ 默认单例作用域 & 延迟初始化

  • 默认作用域:singleton
  • 默认非延迟:容器启动即实例化;加 @Lazy 则延迟到首次调用 getBean()
  • 单例池:DefaultSingletonBeanRegistry#singletonObjects(ConcurrentHashMap)。

一张图总结

启动类包扫描 → 类注解(@Component/@Configuration) → @Bean方法↓@Import(三类) → @ComponentScan → spring.factories↓ConfigurationClassPostProcessor → 注册所有BeanDefinition↓DefaultListableBeanFactory#preInstantiateSingletons → 实例化

背完这 8 条,再读 Spring 源码时,你会在任意一行 registerBeanDefinition() 前立刻定位“这是哪条规则触发”。

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

相关文章:

  • 域名网站负责人的责任小型企业网站建设内容
  • 拼图小游戏开发日记 | Day1
  • 绿色在线网站建行官方网站登录
  • 门户网站建设服务收费北京网站建设小鱼在线
  • 做网站排名要懂那些做网站需要了解什么软件
  • 莆田做网站排名装修十大风格
  • 域名备案后怎样做网站有什么做家纺的网站
  • 网络公司 网站源码青岛做网站公司电话
  • 悬浮网站右侧带鼠标经过二维码显示特效代码做网站设计赚不赚钱
  • 网站建设 微信公众号html做的网页怎么变成网站
  • 我的世界服务器赞助网站怎么做十大编程语言
  • 找婚庆公司去什么网站做网站什么软件好
  • 地坪网站建设贵州省赤水市代码
  • 哪个网站做欧洲旅游攻略好中国做趋势的网站
  • 友情链接的网站淘宝导购网站源码
  • 整站网站优化价格珠海建网站的网络公司
  • 城镇建设周刊网站怎样免费建立个人网站
  • [光学原理与应用-476]:不同检测设备(如 KLA、Hitachi、Nova)使用的具体波长配置和技术路线。
  • 深圳网站设计制ui设计是做什么工作
  • .net网站品牌网站建设 蝌蚪小7
  • 高唐住房建设局网站公司起名大全免费版
  • 扩散模型在单图像去雾领域的研究现状
  • 精品国内网站建设常熟祥云平台网站建设
  • 用v9做的网站上传服务器网站建设系统多少钱
  • 网站建设及域名申请 厦门泉州小程序开发科技公司
  • [特殊字符] 灵感捕手 | APP 界面设计灵感速递
  • 强化学习入门(1):概念、Sarsa、Q-Learning、Dyna-Q
  • linux 网站配置wordpress播放器mu38
  • 圣耀做单网站什么是网站主机
  • 网站权重一般有几个等级潍坊人才招聘网