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

长沙网站优化诊断wordpress做的网站效果

长沙网站优化诊断,wordpress做的网站效果,崇明建设机械网站,wordpress点击图片缩放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.yayakq.cn/news/283056/

相关文章:

  • 最优的网站建设推广网站专题策划页面怎么做
  • 网站开发所需人才中国十大购物网站排行榜
  • php网站开发技术论文国内目前比较好的crm系统
  • 企业网站源码变现方法国外数据网站
  • 重庆网站建设制作设计公司哪家好刚刚石家庄发生大事了
  • 高端企业网站建设蓦然郑州网站建设6英迈思做网站怎么样
  • 开家网站设计公司中国企业500强招聘
  • 网站建设的展望asp.net网站开发 vs2017
  • 建设项目水资源论证网站中心城网站建设
  • 苏州网站推广如何做服装搭配的流行趋势网站
  • 深圳网络专科网站建设新的网站设计公司
  • 网站空间2000m多少钱网络域名侵权十大案例
  • 心理咨询网站php后台一般需要哪些模块个人网站可以做企业宣传
  • 长春做网站大公司域名注册网站 简称
  • 梧州最权威的综合性新闻门户网站深圳市官网网站建设
  • 襄樊北京网站建设手机wap购物网站模板
  • 在浏览器上建设网站聊城专业网站开发公司
  • 下拉框代码自做生成网站高端网站建设公司名称
  • 网站服务器在百度seo优化是什么
  • 阿里云1核2g服务器能建设几个网站封面设计网站有哪些
  • 做电商网站的参考书做分色找工作网站
  • wordpress多站点怎么修改域名网站建设教程微云网盘
  • 灵宝网站建设商河做网站公司
  • 济南微网站网站建设与管理 第2版
  • 微商城网站建设策划seo是什么意思怎么读
  • 做羞羞的事情网站网站建设的流程简答题
  • 做安全防护信息的网站陕西建设官方网站
  • 莱特币做空国外网站网站制作_做网站_耐思智慧
  • 网站建设主要职责高密做网站哪家好
  • 秦皇岛找一家能建网站的公司国家住房建设部网站