Bean的生命周期

Bean的生命周期

一、Bean

我们已经知道容器是什么了,怎么用,那么我们现在来认识bean,在之前的ApplicationContext.xml文件中我们就有看到过beanl。

1、什么是Bean
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是我们对Bean的认知:其实可以总结为它就是为容器ApplicationContext.xml外在表现,提供获取到某些对象的一个表情,然后它的写法与里面有哪些属性等。

下面我们来说生命周期:
如果需要完整的SpringBean的生命周期那么它一共有十一个,我们就来说一数简单的生命周期,然后在于复杂的进行对比。

测试test类:

package spring;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Test {

	public static void main(String[] args){
		/**
		 * bean的生命周期:
		 * 		实例化  -> 初始化 —> 使用对象  ->  销毁
		 */
		//1.加载并且解析applicationContext.xml
		ClassPathXmlApplicationContext factory = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		//2.获取工厂中的IUserDao对象了
		IUserDao userDao = (IUserDao)factory.getBean("userDao"); 
		
		//3.调用方法
		userDao.selectUser();
		
		//4.销毁对象
		factory.close();

	}

}

ApplicationContext.xml文档:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.springframework.org/schema/beans 
	                       http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">

	<!-- 
		bean的属性:
		
			id:引用名称,每个对象的唯一标识,不允许重复
			class:包名  + 类名,表示需要new的对象的路径
			init-method:指定对象使用过程中的初始化方法
			destroy-method:指定对象使用过程中的销毁方法
			
			bean的生命周期:
		  		实例化  -> 初始化 —> 使用对象  ->  销毁

	 -->

	<!--IUserDao userDao = new UserDaoImpl(); -->
	<bean id="userDao" class="spring.UserDaoImpl" init-method="myInit" destroy-method="myDestroy"></bean>

</beans>

在它生命周期里,初始化化与销毁是可以自定义的,它没有要求你必须执行,我们可以自定义一个初始化与销毁的类,然后在ApplicationContext.xml里面配置,是否需要执行。较为灵活,侵入性较低。

那么完整的SpringBean生命周期长长什么样?我们找张图,来了解一下:
图片来源于:https://blog.csdn.net/u011436878/article/details/83904681
在这里插入图片描述
我们可以看出来,如果你需要实例化是需要实现接口,一个完整的Bean什么周期,它需要实现很多接口,那么它的侵入性就大大的增强了,当然任何的方式都是为了适应你现在的需求,现在去只是认识这个东西,所以没有深入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值