@PostConstruct和@PreDestroy注解

@PostConstruct和@PreDestroy注解分别用来触发Spring的初始化和销毁回调

1.@PostConstruct  用来修饰一个非静态的方法,用于触发初始化,被@PostConstruct修饰的方法,都是在初始化之前执行。

验证:

@Component
 public class User implements InitializingBean {
    @PostConstruct   //用来修饰一个非静态的void()方法,用于触发初始化
    public void init(){
          System.out.println("@PostConstruct修饰的方法,初始化之前执行的");
      }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("初始化的方法");
    }
}

 测试:

public class Main {
    public static void main(String[] args) {
      ApplicationContext applicationContext = new AnnotationConfigApplicationContext("com.java.spring.annotation");
        User user = (User) applicationContext.getBean("user");
       ((AnnotationConfigApplicationContext) applicationContext).close();
        System.out.println(user);
    }
}

2.@PreDestroy  用来修饰一个非静态的方法,预销毁,被@PreDestroy修饰的方法,是在销毁之前执行的

 验证:

 public class User implements DisposableBean {
   
    @PreDestroy //用于销毁,预销毁
    public  void  destory(){
        System.out.println("@PreDestroy修饰的方法,销毁之前执行的");
    }
    @Override
    public void destroy() throws Exception {
        System.out.println("销毁的方法");
    }
}

测试同上

 

 

 

 

你可能感兴趣的:(java)