热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

spring中的IOC操作Bean管理(bean生命周期)

1、生命周期(1)从对象创建到对象销毁的过程2、bean生命周期(1)通过构造器创建bean实例(无参数构造&
1、生命周期

1)从对象创建到对象销毁的过程

2bean 生命周期

1)通过构造器创建 bean 实例(无参数构造)

2)为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)

3)调用 bean 的初始化的方法(需要进行配置初始化的方法)

4bean 可以使用了(对象获取到了)

5)当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)

3、演示 bean 生命周期

package net.cybclass.sp.domain;/*** @author: wangxiaobo* @create: 2020-10-04 19:15**/
public class Orders {//无参数构造public Orders() {System.out.println("第一步 执行无参数构造创建 bean 实例");}private String oname;public void setOname(String oname) {this.Oname= oname;System.out.println("第二步 调用 set 方法设置属性值");}//创建执行的初始化的方法public void initMethod() {System.out.println("第三步 执行初始化的方法");}//创建执行的销毁的方法public void destroyMethod() {System.out.println("第五步 执行销毁的方法");}
}


 

/*** @author: wangxiaobo* @create: 2020-10-03 15:11**/
public class app {public static void main(String[] args) {// ApplicationContext applicatiOnContext=new ClassPathXmlApplicationContext("applicationContext.xml");
// Video video=(Video) applicationContext.getBean("video");
// VideoOrder videoOrder= (VideoOrder) applicationContext.getBean("videoOrder");
// System.out.println(video.getTitle());
// System.out.println(videoOrder.getVideo());
// System.out.println(video.getChapterList());
// System.out.println(video.getVideoMap());// Video2 video=(Video2) applicationContext.getBean("video2");// System.out.println(video);ClassPathXmlApplicationContext cOntext=new ClassPathXmlApplicationContext("applicationContext.xml");Orders orders = context.getBean("orders", Orders.class);System.out.println("第四步 获取创建 bean 实例对象");System.out.println(orders);//手动让 bean 实例销毁context.close();}
}

 运行:

 


4bean 的后置处理器,bean 生命周期有七步

1)通过构造器创建 bean 实例(无参数构造)

2)为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)

(3)把 bean 实例传递 bean 后置处理器的方法 postProcessBe

4)调用 bean 的初始化的方法(需要进行配置初始化的方法)
5)把 bean 实例传递 bean 后置处理器的方法 postProcessAfterInitialization
6bean 可以使用了(对象获取到了)
7)当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)
5、演示添加后置处理器效果
1)创建类,实现接口 BeanPostProcessor,创建后置处理器

package net.cybclass.sp.domain;import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.BeanPostProcessor;/*** @author: wangxiaobo* @create: 2020-10-04 19:26**/
public class MyBeanPost implements BeanPostProcessor {@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName)throws BeansException {System.out.println("在初始化之前执行的方法");return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName)throws BeansException {System.out.println("在初始化之后执行的方法");return bean;}
}

 运行:

 

 




推荐阅读
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • 本文详细介绍了Java中org.w3c.dom.Text类的splitText()方法,通过多个代码示例展示了其实际应用。该方法用于将文本节点在指定位置拆分为两个节点,并保持在文档树中。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • andr ... [详细]
  • 本文提供了使用Java实现Bellman-Ford算法解决POJ 3259问题的代码示例,详细解释了如何通过该算法检测负权环来判断时间旅行的可能性。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • 本文探讨了在Java多线程环境下,如何确保具有相同key值的线程能够互斥执行并按顺序输出结果。通过优化代码结构和使用线程安全的数据结构,我们解决了线程同步问题,并实现了预期的并发行为。 ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
author-avatar
如痴如醉as_961
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有