Java框架spring 学习笔记(三):Bean 的生命周期

java

当一个 bean 被实例化时,它可能需要执行一些初始化使它转换成可用状态。当bean不再需要,并且从容器中移除时,需要做一些清除工作。为了定义安装和拆卸一个 bean,我们只要声明init-method 和/或 destroy-method 参数。init-method 属性指定一个方法,在实例化 bean 时,立即调用该方法。同样,destroy-method 指定一个方法,只有从容器中移除 bean 之后,才能调用该方法。

编写HelloWorld.java

 1 package com.example.spring;

2

3 public class HelloWorld {

4 private String message;

5 public void setMessage(String message){

6 this.message = message;

7 }

8

9 public void getMessage(){

10 System.out.println("Your Message : " + message);

11 }

12 //定义初始化方法

13 public void init(){

14 System.out.println("Bean is going through init.");

15 }

16 //定义销毁方法

17 public void destroy(){

18 System.out.println("Bean will destroy now.");

19 }

20 }

编写Beans.xml

 1 <?xml version="1.0" encoding="UTF-8"?>

2 <beans xmlns="http://www.springframework.org/schema/beans"

3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

4 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

5

6 <bean

7 class="com.example.spring.HelloWorld"

8 init-method="init" destroy-method="destroy">

9 <property name="message" value="Hello World"></property>

10 </bean>

11 </beans>

编写Application.java

 1 package com.example.spring;

2

3 import org.springframework.context.support.AbstractApplicationContext;

4 import org.springframework.context.support.ClassPathXmlApplicationContext;

5

6 public class Application {

7 public static void main(String[] args) {

8 //bean配置文件所在位置 D:\\IdeaProjects\\spring\\src\\Beans.xml

9 //使用AbstractApplicationContext容器

10 AbstractApplicationContext context = new ClassPathXmlApplicationContext("file:D:\\IdeaProjects\\spring\\src\\Beans.xml");

11 HelloWorld obj = (HelloWorld)context.getBean("helloWorld");

12 obj.getMessage();

13 //registerShutdownHook关闭hook,确保正常关闭,并调用destroy方法

14 context.registerShutdownHook();

15 }

16 }

运行输出

Bean is going through init.

Your Message : Hello World!

Bean will destroy now.

默认的初始化和销毁方法

如果你有太多具有相同名称的初始化或者销毁方法的 Bean,那么你不需要在每一个 bean 上声明初始化方法和销毁方法。框架使用 元素中的 default-init-method 和 default-destroy-method 属性提供了灵活地配置这种情况,如下所示:

<?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"

default-init-method="init"

default-destroy-method="destroy">

<bean id="helloWorld"

class="com.example.spring.HelloWorld">

<property name="message" value="Hello World"></property>

</bean>

</beans>

运行输出

Bean is going through init.

Your Message : Hello World!

Bean will destroy now.

以上是 Java框架spring 学习笔记(三):Bean 的生命周期 的全部内容, 来源链接: utcz.com/z/394825.html

回到顶部