当Bean在执行完构造函数的时候,可以默认执行 初始化和销毁的方法,即当SpringBean执行完构造方法后可以默认执行一个初始化方法,
当销毁的时候可以执行一个销毁方法。
上代码:
方法一注解方式:
@Bean(initMethod = "initMethod",destroyMethod = "destroyMethod") public User getUser() { return new User("jxd", 28); }
看下我们的User
public class User { private String userName; private int age; public User(String userName, int age) { this.userName = userName; this.age = age; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } private void initMethod() { //初始化方法 System.out.println(" User initMethod "); } private void destroyMethod() {//销毁方法 System.out.println("User destroyMethod "); } }
方法二:实现接口方式:
需要实现InitializingBean,DisposableBean接口
@Component public class JxdEntity implements InitializingBean, DisposableBean { @Override public void destroy() throws Exception { System.out.println(" JxdEntity destroy "); } @Override public void afterPropertiesSet() throws Exception { System.out.println(" JxdEntity afterPropertiesSet "); } }
方法三:JSR250(JAVA自带,不属于Spring)
加上注解 @PostConstruct, @PreDestroy 即可
@Component public class JxdEntity { @PostConstruct public void destroy() throws Exception { System.out.println(" JxdEntity destroy "); } @PreDestroy public void afterPropertiesSet() throws Exception { System.out.println(" JxdEntity afterPropertiesSet "); } }