我想建立以下内容。如果问题的标题含糊不清,请相应更改,因为我无法想到更好的标题。
在我的pojo的getter和setter中加入某种钩子。因此,当我调用我的pojo的任何引用属性时,我可以进行数据库调用并且可以获得最新的引用。
例如
Class A{
}
Class B{
Class A a;
@MagicAnnotation(type=getter)
getA(){
return a;
}
@MagicAnnotation(type=setter)
setA(a){
this.a=a;
}
}
因此,每当使用@MagicAnnotation注释getter或setter时,我知道我需要进行数据库操作。与getter一样,我可以再次从数据库加载引用属性。
是否有现成的工具可以执行此任务?或任何线索我如何开发这样的功能?
我正在使用春天。 :)
答案 0 :(得分:0)
这是JEE拦截器的标准案例(参见http://docs.oracle.com/javaee/6/tutorial/doc/gkigq.html),它们在每个CDI框架中实现(http://docs.oracle.com/javaee/6/tutorial/doc/gkhjx.html)
要在独立代码中开始使用这样的框架(即没有设置服务器基础结构),请查看 weld-se (http://weld.cdi-spec.org/)
注意,当您转移到cdi时 - 拦截器仅适用于管理的bean,而不适用于您自己创建的数据对象。这可能需要一些重构。