Spring init-method and destroy-method

实现bean的生命始末

  1. 在java代码中,定义生命始末的方法,方法的原型是public void 方法名自定义(无参数的){}。

  2. 在Spring的配置文件中,定义bean对象的时候,指定init-method,destory-method生命始末的方法,可以单独使用。

: 要执行对象的销毁方法有两个条件:

  1. 容器要关闭,

  2. 对象是单例作用域

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class SomeServiceImpl implements SomeService {

//默认使用无参构造方法,重写了这个类的构造方法,需要补上这个类的无参构造方法
public SomeServiceImpl() {
System.out.println("执行SomeServiceImpl的无参构造方法");
}

@Override
public void doSome() {
System.out.println("执行SomeServiceImpl的业务方法doSome()");
}

/*
* 对象的初始化方法
* */
public void setup() {
//作对象的初始化操作,例如: 创建Connection
System.out.println("bean对象的初始化方法,在bean对象的构造方法执行之后自动调用");
}

/*
* 对象销毁之前要执行的方法
* */
public void tearDown() {
// 例如: 资源的回收工作,Connection.close(),设置Connection = null
System.out.println("bean对象的销毁之前要执行的方法");
}
}

applicationContext.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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">

<!-- 注册bean对象
init-method:对象的初始化方法
destory-method:对象销毁之前要执行的方法名
-->
<bean id="someService" class="com.node.ba03.SomeServiceImpl"
init-method="setup" destroy-method="tearDown" />

</beans>