如何将钩子放在getter和setter方法中

时间:2016-06-07 09:53:29

标签: java spring java-8

我想建立以下内容。如果问题的标题含糊不清,请相应更改,因为我无法想到更好的标题。

在我的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一样,我可以再次从数据库加载引用属性。

是否有现成的工具可以执行此任务?或任何线索我如何开发这样的功能?

我正在使用春天。 :)

1 个答案:

答案 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,而不适用于您自己创建的数据对象。这可能需要一些重构。