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

回到顶部