拦截器和回调之间有什么区别? 我可以互换地使用@AroundConstruct和@PostConstruct,它们是否会同时涉及(或多或少)?
答案 0 :(得分:2)
正如评论中指出的那样,两者的开销可能微不足道,在你真正有一个真正的问题要谈之前不值得担心。
对于事件序列(和其他差异),AroundConstruct和PostConstruct的javadoc回答了这一点。
必须在拦截器上定义 AroundConstruct
,并在最后一个此类拦截器调用proceed
上的InvocationContext
方法后调用真实构造函数。所以这些技术上会在构造函数之前运行,但是在运行之后你会得到控制权(因此名称" Around
"),这样你就可以进行后期处理同样。
PostConstruct
可以在拦截器或任何void方法上定义,对象本身没有参数。在容器完成依赖注入之后调用(因此名称为" Post
")。