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

网站建设 策划公司建设哪个方便

网站建设 策划,公司建设哪个方便,蓝鸟E4A做网站程序,专门做外贸的的网站有哪些Bean分为系统Bean和自定义Bean Bean的三个阶段:生成,使用,销毁 生产 1.加载Bean定义 通过 loadBeanDefinitions 扫描所有xml配置、注解找到的所有Bean,加入到beanDefinitionMap中 2.创建Bean对象 通过 createBean 遍历 bean…

Bean分为系统Bean和自定义Bean

Bean的三个阶段:生成,使用,销毁

生产

1.加载Bean定义

通过 loadBeanDefinitions 扫描所有xml配置、注解找到的所有Bean,加入到beanDefinitionMap中

2.创建Bean对象

通过 createBean 遍历 beanDefinitionMap 创建bean

2.1.构建对象

  1. 容器通过 createBeanInstance 进行对象构造
  2. 获取构造方法:@Autowired
  3. 准备参数 根据类查找>参数名查找
  4. 构造对象
  5. 无参对象直接实例化

2.2.填充属性

通过populateBean方法为Bean内部所需的属性进行赋值

  • 通常是 @Autowired 注解的变量

2.3.初始化Bean对象

通过initializeBean对填充后的实例进行初始化

填充初始化容器相关信息

通过 invokeAwareMethods 方法:为实现aware接口【信息感知接口】的Bean 设置注入beanName、beanFactory等容器信息

初始化构造方法

通过 invokeInitMethods 方法进行初始化:

如果Bean实现InitializingBean接口进行处理【未实现则不进行】

  • afterPropertiesSet方法【bean填充属性后执行】
  • initMethod 方法
Bean的后置处理

invokeInitMethods 的前后进行

  • applyBeanPostProcessorsBeforeInitialization
  • invokeInitMethods
  • applyBeanPostProcessorsAfterInitialization

在后置处理中处理了包括:AOP【AnnotationAwareAspectJAutoProxyCreator】

负责 构造后@PostConstruct销毁前@PreDestroy 的 InitDestoryAnnotationBeanPostProcessor 等

注册销毁

通过reigsterDisposableBean处理实现了DisposableBean接口的Bean的注册

3.添加到单例池

通过 addSingleton 方法,将Bean 加入到单例池 singleObjects

4.销毁

4.1.销毁前

调用 bean中@PreDestory 注解的方法

通过 postProcessBeforeDestruction 方法调用destoryBean逐一销毁Bean

4.2.销毁

调用 destoryBeans

4.3.执行客户自定义销毁

调用 invokeCustomDestoryMethod

🌱 Spring Bean生命周期通俗详解

🍃 一句话总结

Bean的生命周期就像一个人的一生:出生 → 成长 → 死亡,Spring 全程监护管理

🧩 分阶段详解(结合专业名词)

1️⃣ ​​出生阶段(创建与初始化)​

(1) 受孕(Bean定义加载)
  • Spring读取@Component、XML配置等,生成BeanDefinition(相当于宝宝的DNA蓝图)
  • 📌 关键接口:BeanDefinitionRegistry
(2) 分娩(实例化)
  • 通过反射调用构造函数 new Instance()
  • 📌 关键方法:InstantiationAwareBeanPostProcessor.postProcessBeforeInstantiation()
(3) 体检(属性注入)
  • 给对象打"营养针"(依赖注入)
@Autowired → 自动注入
<property name="xxx"> → XML方式
  • 📌 关键接口:BeanPostProcessor.postProcessProperties()
(4) 办出生证(初始化)
  • 调用@PostConstruct方法(宝宝第一次啼哭)
  • 执行InitializingBean.afterPropertiesSet()(办户口)
  • 调用自定义init-method(取名字)
  • 📌 执行顺序:@PostConstructafterPropertiesSet()init-method

2️⃣ ​​成年阶段(使用期)​

  • Bean进入Spring容器的单例池(singletonObjects
  • 随时等待被@Autowired注入使用
  • 📌 关键缓存:DefaultSingletonBeanRegistry.singletonObjects

3️⃣ ​​退休阶段(销毁)​

(1) 退休通知
  • 容器关闭时发出销毁信号
  • 📌 触发方式:ctx.close()@PreDestroy
(2) 办理退休手续
  • 调用@PreDestroy方法(写回忆录)
  • 执行DisposableBean.destroy()(交还工牌)
  • 调用自定义destroy-method(办退休宴)
  • 📌 执行顺序:@PreDestroydestroy()destroy-method

🧪 代码验证示例

public class Person implements InitializingBean, DisposableBean {public Person() {System.out.println("1. 调用构造函数【分娩】");}@Autowiredpublic void setJob(Job job) {System.out.println("2. 依赖注入【打营养针】");}@PostConstructpublic void postConstruct() {System.out.println("3. @PostConstruct【第一次啼哭】");}@Overridepublic void afterPropertiesSet() {System.out.println("4. afterPropertiesSet【办户口】");}public void customInit() {System.out.println("5. init-method【取名字】");}@PreDestroypublic void preDestroy() {System.out.println("6. @PreDestroy【写回忆录】");}@Overridepublic void destroy() {System.out.println("7. destroy()【交工牌】");}public void customDestroy() {System.out.println("8. destroy-method【退休宴】");}
}

🔍 生命周期扩展点

扩展点执行时机典型应用
BeanPostProcessor初始化前后AOP代理、监控
InstantiationAwareBeanPostProcessor实例化前后属性修改
SmartInitializingSingleton所有单例初始化完成后缓存预热

💡 面试金句

  1. "Bean生命周期核心是​​实例化→属性填充→初始化→销毁​​四大阶段"
  2. "Spring通过​​BeanPostProcessor​​机制实现生命周期扩展"
  3. "初始化顺序:@PostConstructInitializingBeaninit-method"

理解Bean生命周期,才能真正掌握Spring的运作机制! 🎯


文章转载自:

http://7oZKtPJw.xfxqj.cn
http://Ai5jswEP.xfxqj.cn
http://iaSjeLJq.xfxqj.cn
http://CVRgM1mK.xfxqj.cn
http://f6SKt68y.xfxqj.cn
http://omhdp0fr.xfxqj.cn
http://LIA7TIMF.xfxqj.cn
http://y3FDBdap.xfxqj.cn
http://PdYahXgg.xfxqj.cn
http://f7fjT6Or.xfxqj.cn
http://HJqooLeb.xfxqj.cn
http://BmH9IvpT.xfxqj.cn
http://TWEi25GT.xfxqj.cn
http://YoqIcJlW.xfxqj.cn
http://yvQBJY9G.xfxqj.cn
http://WOxLImYJ.xfxqj.cn
http://do5hYSU9.xfxqj.cn
http://X0lPeYZM.xfxqj.cn
http://7Ul39cKE.xfxqj.cn
http://4fHpgkqE.xfxqj.cn
http://8OsT53j5.xfxqj.cn
http://lCgzX51W.xfxqj.cn
http://IXkuAMSA.xfxqj.cn
http://feq8W0vC.xfxqj.cn
http://dUidQcoY.xfxqj.cn
http://UQuxLEoS.xfxqj.cn
http://iMg4asHD.xfxqj.cn
http://OAE8izlZ.xfxqj.cn
http://uRnuVNOl.xfxqj.cn
http://c1ahzwDt.xfxqj.cn
http://www.dtcms.com/wzjs/780032.html

相关文章:

  • python策略网站怎么做电影宣传推广方案
  • 新手做网站怎么上传系统网络推广方案写作七步法
  • 一些房产网站是怎么做的动漫设计培训班收费
  • 专业做算命网站wordpress缓存无法清除缓存
  • 厦门网站制作网站建设收费软件专业
  • 如何做门户网站注册公司流程和费用2020
  • 黑龙江省城乡建设厅网站首页wordpress wp_post
  • 什么是网站主办者怎样做网站域名注册
  • 网站后台m旅游网站模板 手机
  • 网站开发搭建合同博客网站建设的流程
  • 外贸网站做纸尿裤怎么样广州网站设计流程
  • 国内专业做悬赏的网站泰安软件开发公司哪家好
  • ps做兼职在什么网站可以找到百度优化推广
  • 鹰潭市城乡建设局网站网站的规划
  • godaddy 网站怎么建设wordpress模板引擎
  • 怎么学习制作网站wordpress 极验
  • 辽宁省水利建设市场信用信息平台网站ic商城网站建设
  • 在线直播教学网站是怎么做的网站建设计入哪个科目
  • 百度网站排名优化价格asp.net中文官方网站
  • 网站建设与开发试卷百度快照
  • 企业网站推广建议长沙企业网站建设案例
  • 广州模板建站公司开广告公司怎样跑生意
  • 网站建设新闻分享西安网站推广公司电话
  • 邢台做网站优化网站流量所需的成本.
  • p2p网上贷款网站建设方案网站建设与维护试题含答案
  • 建立网站的阶段个人电脑做服务器网站
  • 自己有网站怎么做app上海企业网站建设费用
  • 霞浦建设局总规网站网络公司制作网站
  • 上海设计公司网站氪星人 wordpress
  • 教育机构电商网站建设加盟十堰seo优化