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

做中英文网站的做网址导航网站收益

做中英文网站的,做网址导航网站收益,做网站的软件m开头,天安云谷网站建设具体流程 bean的生命周期分4个阶段:   1.实例化   2.属性赋值   3.初始化   4.销毁 实例化就是在内存中new()出一个对象,属性赋值就是给那些被Autowired修饰的属性注入对象,销毁是在Spring容器关闭时触发,初始化的步骤比较…

具体流程

  bean的生命周期分4个阶段:
  1.实例化
  2.属性赋值
  3.初始化
  4.销毁

  实例化就是在内存中new()出一个对象,属性赋值就是给那些被@Autowired修饰的属性注入对象,销毁是在Spring容器关闭时触发,初始化的步骤比较多:

  1.是否实现Aware的相关接口,调用重载方法
  (BeanNameAware#setBeanName,
  BeanClassLoaderAware#setBeanClassLoader,
  BeanFactoryAware#setBeanFactory,
  ApplicationContextAware#setApplicationContext)

  2.是否有bean实现BeanPostProcessor接口,调用实现的postProcessBeforeInitialization方法(实现类加载时不调用自身实现的方法,调用其他实现类的)

  3.是否实现InitializingBean接口,调用重载方法afterPropertiesSet方法

  4.是否指定@Bean的initMethod属性,调用指定的方法(定义在bean对应的类里,不是配置类里)

  5.是否有bean实现BeanPostProcessor接口,调用实现的postProcessAfterInitialization方法(和第2点同理)


  话不多说,下面用代码来给出示例。


代码示例

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;public class A implements BeanNameAware, BeanFactoryAware, ApplicationContextAware, InitializingBean {public A() {System.out.println("a的构造函数");}@Overridepublic void setBeanName(String s) {System.out.println("初始化-setBeanName");}@Overridepublic void setBeanFactory(BeanFactory beanFactory) throws BeansException {System.out.println("初始化-setBeanFactory");}@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {System.out.println("初始化-setApplicationContext");}@Overridepublic void afterPropertiesSet() throws Exception {System.out.println("初始化-afterPropertiesSet");}public void init() {System.out.println("初始化-init");}}
import org.springframework.context.annotation.Bean;public class MyConfiguration  {@Bean(initMethod = "init")public A a() {return new A();}}
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Import;@Import(MyConfiguration.class)
public class BootStrap {public static void main(String[] args) {AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(BootStrap.class);A bean = context.getBean(A.class);}}

  运行启动类后,控制台打印:

在这里插入图片描述

  这里单独再说下BeanPostProcessor,A类去实现它:

public class A implements BeanNameAware, BeanFactoryAware, ApplicationContextAware, InitializingBean, BeanPostProcessor{//...//其余的方法不动,就添加下面2个方法public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println(beanName + ":初始化-beforeInitialization");return bean;}public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println(beanName + ":初始化-afterInitialization");return bean;}}

  再次运行启动类,控制台和之前的一样(A这个bean的初始化,没有调用实现的那2个方法):

在这里插入图片描述

  A类还原,不实现BeanPostProcessor;MyConfiguration类实现该接口:

import org.springframework.context.annotation.Bean;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;public class MyConfiguration implements BeanPostProcessor {@Bean(initMethod = "init")public A a() {return new A();}public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {System.out.println(beanName + ":初始化-beforeInitialization");return bean;}public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {System.out.println(beanName + ":初始化-afterInitialization");return bean;}}

  再次运行启动类,这时想要的效果有了:

在这里插入图片描述

  所以bean初始化中,不会调用自身实现BeanPostProcessor接口的那2个方法,调用其他实现BeanPostProcessor接口的bean的。

http://www.yayakq.cn/news/70287/

相关文章:

  • 北京做百度网站网页界面设计的英文缩写
  • 做网站的好处和坏处网站开发技术基础教程
  • 云南省住房和城乡建设厅官方网站wordpress搜索引擎源码
  • 站长工具seo综合查询方法百度关键词竞价排名
  • 重庆市建设局网站企业手机网站建设公司
  • 做淘宝网站销售怎么样福州 网站建设 医疗
  • 优秀的电商网站北京软件开发工资
  • 南宁网站建设蓝云郑州企业推广
  • 临猗商城网站建设平台做自己的网站多少钱
  • 网站开发技术 北京湘潭网站建设选择湘潭振企网站建设
  • 网站开发浏览器包网站备案号什么情况下被注销
  • 自助网站建设用什么好福田官网
  • 沛县建设局网站网站开发中遇到的技术问题
  • 做淘宝还是京东还是做网站wordpress主题阿里云
  • 做自己的网站的作用建设人行官方网站
  • 英文网站域名注册百度云官网入口
  • 网站项目总体设计模板郑州专业做网站公司
  • 广东网站设计与建设做网站的厉害还是黑网站的厉害
  • 网站电脑培训班办公软件网站开发报告多少页合适
  • 做游戏ppt下载网站网站建设丿选择金手指排名15
  • 自己可以创建公司网站吗营销企业网站制作
  • 美发网站模板带手机版深圳住房和建设局网站
  • 张家界做网站的人企业网站的基本内容以及营销功能
  • 宁波网站推广平台效果好网页制作资料
  • 评价中国建设银行网站万能软文模板
  • 彩票网站开发是否合法东莞哪家纯设计公司做得好
  • 网站项目设计我们的社区手机在线观看
  • 手机上网站用建设工具石家庄效果图设计
  • 谷歌外贸建站多少钱百度竞价排名是什么
  • 电商网站 技术360建站的应用场景