下面我将详细讲解Spring中bean的初始化和销毁几种实现方式。
一、Bean初始化
1. 实现InitializingBean接口
实现InitializingBean接口并覆盖afterPropertiesSet()方法,该方法会在所有的属性被设置之后,初始化bean之前调用。
public class MyBean implements InitializingBean {
@Override
public void afterPropertiesSet() throws Exception {
// bean初始化代码
}
}
2. 使用注解@PostConstruct
使用@PostConstruct注解在bean初始化时执行自定义方法。需要注意的是,该注解需要在启用注解扫描的情况下生效,即在配置文件中加入
public class MyBean {
@PostConstruct
public void init() {
// bean初始化代码
}
}
二、Bean销毁
1. 实现DisposableBean接口
实现DisposableBean接口并覆盖destroy()方法,该方法会在bean销毁时调用。
public class MyBean implements DisposableBean {
@Override
public void destroy() throws Exception {
// bean销毁代码
}
}
2. 使用注解@PreDestroy
使用@PreDestroy注解在bean销毁前执行自定义方法。同样需要在启用注解扫描的情况下生效。
public class MyBean {
@PreDestroy
public void destory() {
// bean销毁代码
}
}
示例详解:
我这里提供两个示例分别说明以上四种方式的用法。
1.使用实现InitializingBean接口的方式:
public class MyBean implements InitializingBean {
private String message;
public void setMessage(String message) {
this.message = message;
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("MyBean is going to be initialized!");
System.out.println("Now the message is: " + message);
}
}
配置文件中需要将该bean的message属性进行设置,例如:
<bean id="myBean" class="com.example.MyBean">
<property name="message" value="Hello World!"/>
</bean>
输出结果:
MyBean is going to be initialized!
Now the message is: Hello World!
2.使用@PostConstruct注解的方式:
public class MyBean {
private String message;
public void setMessage(String message) {
this.message = message;
}
@PostConstruct
public void myInit() {
System.out.println("MyBean is going to be initialized!");
System.out.println("Now the message is: " + message);
}
}
同样需要进行配置:
<bean id="myBean" class="com.example.MyBean">
<property name="message" value="Hello World!"/>
</bean>
输出结果与第一个示例相同。
以上就是Spring中bean的初始化和销毁几种实现方式的详细攻略了,希望能对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring中bean的初始化和销毁几种实现方式详解 - Python技术站