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

扬州润扬交通建设集团网站头条收录提交入口

扬州润扬交通建设集团网站,头条收录提交入口,怎么套用网站模板,厦门建网站Spring学习笔记6 Bean的实例化方式_biubiubiu0706的博客-CSDN博客 Spring其实就是一个管理Bean对象的工厂.它负责对象的创建,对象的销毁. 这样我们才可以知道在哪个时间节点上调用了哪个类的哪个方法,知道代码该写在哪里 Bean的生命周期之粗略5步 Bean生命周期的管理可以参考S…

Spring学习笔记6 Bean的实例化方式_biubiubiu0706的博客-CSDN博客

Spring其实就是一个管理Bean对象的工厂.它负责对象的创建,对象的销毁.

这样我们才可以知道在哪个时间节点上调用了哪个类的哪个方法,知道代码该写在哪里

Bean的生命周期之粗略5步

Bean生命周期的管理可以参考Spring的源码:

AbstractAutowireCapableBeanFactory

Bean的生命周期之粗略7步

比前面增加了两步,这两步放在上面第三步:初始化Bean  自定义init方法的前后

可以假如"Bean后处理器"

需要这个类实现BeanPostProcessor类,并重写before和after方法

Bean的生命周期10步

就是又增加了三个接口

Aware相关的接口包括:BeanNameAware,BeanClassLoaderAware,BeanFactoryAware

当Bean实现了BeanNameAware,Spring会将Bean的名字传递给Bean

当Bean实现了BeanClassLoaderAware,Spring会将加载该Bean的类加载器传递给Bean

当Bean实现了BeanFactoryAware,Spring会将Bean工厂对象传递给Bean

测试以上十步,让类实现5个接口,并实现所有方法:

BeanNameAware

BeanClassLoaderAware

BeanFactoryAware

InitializingBean

DisposableBean

package com.example.bean;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.*;/*** Bean的生命周期按照粗略的5步:* 1.实例化Bean(调用无参构造方法)* 2.给Bean属性赋值(调用set方法)* 3.调用init方法,注意这个init方法需要自己写,自己配(方法名随意)* 4.可以使用bean* 5.销毁Bean,会调用destroy方法,需要自己写,自己配(方法名随意)* @author hrui* @date 2023/9/24 3:16*/
public class User implements BeanNameAware, BeanClassLoaderAware, BeanFactoryAware, InitializingBean ,DisposableBean{private String name;public void setName(String name) {System.out.println("第二步:给对象属性赋值");this.name = name;}public User() {System.out.println("第一步,无参构造方法执行");}public void initBean(){System.out.println("第三步:调用initBean方法");}public void destoryBean(){System.out.println("第五步:destoryBean方法销毁Bean");}@Overridepublic void setBeanClassLoader(ClassLoader classLoader) {System.out.println("这个Bean的类加载器:"+classLoader);}@Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {System.out.println("这个Bean的BeanFactory:"+beanFactory);}@Overridepublic void setBeanName(String name) {System.out.println("这个Bean的Name:"+name);}@Overridepublic void afterPropertiesSet() throws Exception {System.out.println("InitializingBean的afterPropertiesSet方法");}@Overridepublic void destroy() throws Exception {System.out.println("DisposableBean的destroy方法");}
}

Bean的生命周期中,不同的作用域有不同的管理方式

Spring是根据Bean的作用域来选择管理方式的.

对于singleton作用域的Bean,Spring能够精确地知道该Bean何时被创建,合适初始化,以及何时被销毁

而对于protoType作用域的Bean,Spring只负责创建,当容器创建了Bean的实例后,Bean的实例就交给客户端代码管理,Spring容器将不再跟踪其生命周期.

Spring容器只对singleton的bean进行完整的生命周期管理

如果是prototype作用域的Bean,Spring容器只负责将该Bean初始化完毕.等客户端程序一旦获取到该Bean之后,Spring容器就不再管理该对象生命周期

也就是说scope是prottype的Bean执行完"Bean后处理器"交给客户端使用后就不管了

将自己new的对象让Spring管理

有时候可能会遇到这样的需求,某个java对象是我们自己new的,然后我们希望这个对象被Spring容器管理,怎么实现.

之前都是Spring配置文件中配置,然后纳入Spring容器管理

如果我们想让该对象让Spring容器管理,但是又不想在配置文件里配置怎么办

例如

但是这个Bean并不由Spring管理

怎么办?用

DefaultListableBeanFactory注册

http://www.wangmingla.cn/news/55672.html

相关文章:

  • 江苏省政府门户网站建设方案seo网络搜索引擎优化
  • 唐山seo设计网站百度答主中心入口
  • 临汾做网站电话福建seo顾问
  • 北京织梦网站建设网站seo优化推广外包
  • 建设工程合同范本工程施工合同范本aso优化排名
  • 嘉兴高端网站建设网址seo关键词
  • 做外贸建网站多少钱郑州网站推广方案
  • 北京有哪些网站建设公司兰州网络推广与营销
  • wordpress多本小说站出售软件开发交易平台
  • 驻马店市住房和城乡建设局网站seo综合查询工具可以查看哪些数据
  • 简单手机网站开发软件网站排名优化价格
  • 网站制作案例流程图武汉竞价托管公司
  • 网站首页做很多个关键词网站推荐
  • 建站软件安卓产品线上推广方案
  • 网站建设内容存储免费网站注册com
  • 个人电商网站建设范例网络营销策划师
  • 网站做百度推广需要什么材料成都seo优化
  • 为客户做网站的方案兰州模板网站seo价格
  • 如何在WordPress部署主题百度免费优化
  • 蓝海基业做的网站好吗2345手机浏览器
  • 绍兴网站推广帮别人发广告赚钱平台
  • 建立网站 用英语b站是哪个网站
  • 做网站实现自动生成pdf最好的优化公司
  • 关于动物的网站建设策划书域名注册免费
  • 在哪个网站可以做试卷信息流推广方式
  • 网站忘了怎么办网店运营怎么学
  • 哈尔滨网站建设培训班知乎关键词排名优化工具
  • 湖南做旅游网站哪家最好营销策略怎么写
  • 渭南建设工程招标投标网站北京专业seo公司
  • 自己做qq代刷网站要钱吗济南最新消息今天