方法使用
总结:@PostConstruct可以用来修饰非静态的void()方法
执行顺序:Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
(依赖注入后执行的方法,只会执行一次)
- 除了应用程序客户端之外,该方法不得是静态的
- 应用 PostConstruct 的方法可以是 public、protected、package private 或 private。
- 该方法可以被final修饰
- 方法不能抛出未经检查的异常,除非 EJB 可以处理异常甚至从异常中恢复
@Configuration
public class RabbitConfiguration {
@Autowired
private RabbitTemplate rabbitTemplate;
@Bean
public MessageConverter messageConverter(){
return new Jackson2JsonMessageConverter();
}
/**
* @Description:定制RabbitTemplate
* 执行顺序:
* Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
*/
@PostConstruct //RabbitConfig对象创建完成以后,执行这个方法
public void initRabbitTemplate(){
rabbitTemplate.setConfirmCallback(new RabbitTemplate.ConfirmCallback() {
@Override
public void confirm(CorrelationData correlationData, boolean b, String s) {
}
});
}
}
拦截器使用
jdk源码详解: