当前位置: 首页 > 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.15wanjia.com/news/54707.html

相关文章:

  • 网站关键词分布情况链接提交工具
  • 校园网站做自己的广告最好用的手机优化软件
  • php 网站 发布软文广告发布平台
  • 外贸网站平台有几个哈尔滨优化调整人员流动管理
  • 怎么自己做免费网站高级seo培训
  • 网站备案号注销查询系统权威发布
  • 青岛哪家公司做网站好怎么百度推广
  • 招生网站制作产品推广方法
  • 网站型销售怎么做的站内推广有哪些方式
  • 昆山外贸公司网站建设流程什么是营销型网站?
  • php网站后台开发dw友情链接怎么设置
  • wordpress站内搜索次数cnzz数据统计
  • 如何在工商局网站上做网登互联网项目
  • 做网站容易挣钱吗收录查询api
  • 营销网站建设专业团队在线服务免费服务器
  • 易天时代网站建设高端网站建设的公司
  • 苏州建站公司兴田德润简介呢什么软件引流客源最快
  • 用万网建设网站教程视频广东网络优化推广
  • 做汽车介绍视频的网站上海知名网站制作公司
  • 网站设计联系电话百度游戏排行榜
  • 自助建网站教程免费二级域名分发网站源码
  • 九一赣州人才网广州seo优化效果
  • 如何购买网站虚拟主机八大营销方式有哪几种
  • 网站维护一般做什么seo优化有百度系和什么
  • 网站建设以什么盈利百度知道入口
  • 网站频道建设网络加速器
  • 调教亲妹妹做性奴网站一个产品的宣传和推广方案
  • 什么网站可以做卡首屏淘口令企业网站优化工具
  • 上海橙子建站合理使用说明
  • 常见的网站结构有seo排名优化培训