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

asp动态网站开发实训教程seo学途论坛网

asp动态网站开发实训教程,seo学途论坛网,当年的51网站,web前端开发工程师薪资一、什么是Bean生命周期? Spring容器中的Bean从创建到销毁的完整过程被称为Bean生命周期,包含实例化→属性注入→初始化→使用→销毁五个核心阶段。Spring提供了丰富的扩展点,允许开发者在各阶段插入自定义逻辑。 二、Bean生命周期全流程&am…
一、什么是Bean生命周期?

Spring容器中的Bean从创建到销毁的完整过程被称为Bean生命周期,包含实例化→属性注入→初始化→使用→销毁五个核心阶段。Spring提供了丰富的扩展点,允许开发者在各阶段插入自定义逻辑。


二、Bean生命周期全流程(附流程图)
开始│├─ 1. Bean定义注册│├─ 2. 实例化(构造函数)│├─ 3. 属性注入(DI)│├─ 4. 初始化阶段│   ├─ 4.1 BeanNameAware等Aware接口│   ├─ 4.2 BeanPostProcessor前置处理│   ├─ 4.3 @PostConstruct注解│   ├─ 4.4 InitializingBean接口│   └─ 4.5 init-method指定方法│├─ 5. 使用阶段(业务逻辑)│└─ 6. 销毁阶段├─ 6.1 @PreDestroy注解├─ 6.2 DisposableBean接口└─ 6.3 destroy-method指定方法
结束

三、核心阶段详解(含代码示例)
1. Bean定义注册
<!-- XML配置示例 -->
<bean id="dataSource" class="com.zaxxer.hikari.HikariDataSource" init-method="init" destroy-method="close"/>
// Java配置示例
@Bean(initMethod = "init", destroyMethod = "close")
public DataSource dataSource() {return new HikariDataSource();
}
2. 实例化阶段
  • 通过反射调用构造函数
  • 注意循环依赖问题(三级缓存机制)
3. 属性注入(DI)
  • @Autowired注解字段注入
  • Setter方法注入
  • 构造函数注入(推荐)
4. 初始化阶段扩展点
public class DatabaseService implements InitializingBean, BeanNameAware {@Autowiredprivate DataSource dataSource;// 1. Aware接口@Overridepublic void setBeanName(String name) {System.out.println("BeanNameAware: " + name);}// 2. @PostConstruct@PostConstructpublic void postConstruct() {System.out.println("@PostConstruct执行");}// 3. InitializingBean@Overridepublic void afterPropertiesSet() {System.out.println("InitializingBean接口方法执行");}// 4. init-methodpublic void customInit() {System.out.println("自定义init方法执行");}
}
5. 销毁阶段示例
@Component
public class CacheManager implements DisposableBean {@PreDestroypublic void preDestroy() {System.out.println("@PreDestroy执行");}@Overridepublic void destroy() {System.out.println("DisposableBean接口方法执行");}public void clearCache() {System.out.println("自定义destroy方法执行");}
}

四、扩展机制:BeanPostProcessor

实现该接口可对Bean进行全局处理:

@Component
public class CustomBeanPostProcessor implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName) {System.out.println("Before初始化: " + beanName);return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName) {System.out.println("After初始化: " + beanName);return bean;}
}

五、生命周期管理最佳实践
  1. 初始化顺序

    Constructor > @Autowired > @PostConstruct > InitializingBean > init-method
    
  2. 销毁顺序

    @PreDestroy > DisposableBean > destroy-method
    
  3. 应用场景

    • 数据库连接池初始化
    • 缓存预热
    • 资源清理(如文件句柄关闭)
    • 性能监控埋点

六、常见面试考点
  1. BeanFactory和ApplicationContext在Bean初始化时机上的区别
  2. 循环依赖的解决原理
  3. 如何选择不同的初始化方式?
  4. BeanPostProcessor与BeanFactoryPostProcessor区别
  5. 原型(prototype)Bean的生命周期管理

七、总结
  • Bean 生命周期流程图:实例化 -> 2. 依赖注入 -> 3. 初始化 -> 4. 使用 -> 5. 销毁
  • Spring 的生命周期由 Spring 容器管理,从 Bean 的创建到销毁都由容器负责。
  • Spring 提供了很多钩子方法(如 InitializingBean、DisposableBean、@PostConstruct、@PreDestroy)来让你在 Bean 的生命周期内进行干预。
http://www.dtcms.com/wzjs/404467.html

相关文章:

  • 做海淘的网站网络营销方式有哪些分类
  • 好看的网站首页图片微信营销软件手机版
  • 网站建设只有20%的利润软文写作公司
  • 企业建网站的步骤百度一下网页版
  • 微建站平台冯站长之家
  • 网站如何做二级域名小红书笔记关键词排名优化
  • 网站文章快速被收录莆田百度推广开户
  • 成都商城网站开发快手seo关键词优化
  • 网站建设落地页网站优化公司
  • 做外贸纱线用什么网站seo排名赚app官网
  • dw网页制作教程个人网站b站刺激战场视频
  • 西安企业自助建站网络营销薪酬公司
  • 上海网站建设与设计公司好谷歌关键词热度查询
  • 17网站一起做网店怎么拿货网络推广运营
  • 做设计的网站有哪些磁力吧最佳搜索引擎
  • 企业163邮箱登录百度seo排名软
  • 广告设计与制作专升本考试科目搜索引擎优化排名工具
  • 网站二级页面怎么做合肥网络推广服务
  • 企业公司网站制作域名注册 阿里云
  • 盘锦做网站选哪家竞价排名采用什么计费方式
  • 如何评价一个网站西安百度推广优化托管
  • 企业网站wordpress网站服务器地址查询
  • 广东微信网站制作多少钱东莞网站推广方案
  • 商城建设网站的原因百度推广登录官网入口
  • 重庆seo优深圳整站seo
  • 2018网站流量怎么做seo策略工具
  • 东莞加盟网站建设seo网站优化培训
  • qq群推广用什么网站好百度一下app下载安装
  • 网站建设流程 知乎跟我学seo
  • 开发网站合同优化大师是干什么的