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

延边省建设局网站官网aso优化排名

延边省建设局网站官网,aso优化排名,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.dinnco.com/news/54715.html

相关文章:

  • 做网站可以设账户吗网络推广工具和方法
  • 安徽建筑培训网合肥网站优化方案
  • 温州网站制作系统20个排版漂亮的网页设计
  • 怎么做简单的微信浏览的网站合肥网站推广
  • 纯div css做网站简洁版衡阳seo快速排名
  • 网站建设公司的问答营销案例互联网推广是什么
  • 无锡网站制作厂家地址最新国内新闻事件今天
  • 做网站建设要什么证智推教育seo课程
  • 电玩网站开发百度域名购买
  • 网站空间500mb网站优化推广怎么做
  • 十大装修公司排名哪家最好旺道seo优化软件
  • 深圳做网站的好公司有哪些在线企业管理培训课程
  • 佛山网站建设 天博重庆网页优化seo
  • 直接买个域名就能自己做网站互联网app推广具体怎么做
  • 网站运营与建设作业百度指数人群画像哪里查询
  • wordpress不显示中文图片360优化大师app
  • 小型手机网站建设企业网站加速
  • 电商是什么职业win7优化大师官网
  • 一级a做爰片免费网站黄最近发生的重大新闻
  • wordpress 传媒主题seo关键词优化推广外包
  • 合肥做个网站什么价格青山seo排名公司
  • 慈城旅游网站建设策划书域名注册免费
  • 武汉光谷做网站价格网站系统开发
  • 怎么做单页竞价网站营销的主要目的有哪些
  • 广州建站外贸网站百度推广收费多少
  • 一站式服务的好处房产网站建设
  • 福州网站建设信息网站建设服务
  • 做图的赚钱的网站营销网络的建设怎么写
  • 怎么建站网站我要推广
  • 网页设计工资条长春seo关键词排名