Spring 框架还支持基于 JSR-250 标准的注解,主要包括 @PostConstruct、@PreDestroy 和 @Resource。尽管已有其他选择,但这些注解提供了简洁的生命周期管理和依赖注入方式。
@PostConstruct 和 @PreDestroy 注解
为了定义 Bean 的初始化和销毁行为,可以使用 init-method 和 destroy-method 属性声明。init-method 指定实例化后立即调用的方法,destroy-method 指定从容器删除前调用的方法。
也可以使用 @PostConstruct 作为初始化回调的替代,@PreDestroy 作为销毁回调的替代。
示例代码
HelloWorld.java
package com.example;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
public class HelloWorld {
private String message;
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
System.out.println("Your Message : " + message);
return message;
}
@PostConstruct
public void init() {
System.out.println("Bean is going through init.");
}
@PreDestroy
public void destroy() {
System.out.println("Bean will destroy now.");
}
}
MainApp.java
package com.example;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class {
{
();
(HelloWorld) context.getBean();
obj.getMessage();
context.registerShutdownHook();
}
}

