SpringIoC容器01Bean级生命周期
1、代码说明
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanNameAware;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
/**
* Bean生命周期
*/
public class BeanLifecycle implements BeanNameAware,
ApplicationContextAware, InitializingBean, DisposableBean {
/**
* 1. 构造器
*/
public BeanLifecycle() {
System.out.println("1. 【Bean级别】构造器执行了");
}
/**
* 2. BeanNameAware接口方法实现
*/
@Override
public void setBeanName(String name) {
System.out.println("2. 【Bean级别】setBeanName方法执行了");
}
/**
* 3. ApplicationContextAware接口方法实现
*/
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
System.out.println("3. 【Bean级别】setApplicationContext方法执行了");
}
/**
* 4. InitializingBean接口方法实现
*/
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("4. 【Bean级别】afterPropertiesSet方法执行了");
}
/**
* 5. init-method属性指定的方法
* 指定某个方法在Bean实例化完成,依赖关系设置结束后执行
*/
public void lifecycleInit() {
System.out.println("5. 【Bean级别】init-method指定的方法执行了");
}
/**
* 6. Bean中的业务方法
*/
public void sayHello() {
System.out.println("6. 【Bean级别】sayHello方法执行了");
}
/**
* 7. DisposableBean接口方法实现
*/
@Override
public void destroy() throws Exception {
System.out.println("7. 【Bean级别】destroy方法执行了");
}
/**
* 8. destroy-method属性指定的方法
* 指定某个方法在Bean销毁之前被执行
*/
public void lifecycleInitDestroy() {
System.out.println("8. 【Bean级别】destroy-method属性指定的方法执行了");
}
}
2、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.xsd">
<!--BeanLifecycle-->
<bean id="beanLifecycle"
class="com.test.lifecycle.beanlifcycle.BeanLifecycle"
init-method="lifecycleInit"
destroy-method="lifecycleInitDestroy">
</bean>
</beans>
3、Bean生命周期测试
import com.test.lifecycle.beanlifcycle.BeanLifecycle;import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
/**
* @Description Bean生命周期测试
*/
@RunWith(SpringRunner.class)
@ContextConfiguration("classpath:spring-chapter2-beanlifecycle.xml")
public class BeanLifecycleTest {
@Autowired
private BeanLifecycle beanLifecycle;
@Test
public void test() {
beanLifecycle.sayHello();
}
}
4、运行结果
1. 【Bean级别】构造器执行了2. 【Bean级别】setBeanName方法执行了
3. 【Bean级别】setApplicationContext方法执行了
4. 【Bean级别】afterPropertiesSet方法执行了
5. 【Bean级别】init-method指定的方法执行了
6. 【Bean级别】sayHello方法执行了
7. 【Bean级别】destroy方法执行了
8. 【Bean级别】destroy-method属性指定的方法执行了
以上是 SpringIoC容器01Bean级生命周期 的全部内容, 来源链接: utcz.com/z/512743.html