2016-06-07 66 views
2

我想構建以下內容。如果問題的標題含糊不清,請相應更改,因爲我無法想到更好的標題。如何在getter和setter方法中設置鉤子

在我的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; 
    } 

} 

所以每當一個getter或setter標註有@MagicAnnotation我知道我需要做的數據庫操作。就像getter一樣,我可以從數據庫中再次加載參考屬性。

是否有任何現有的工具可以完成這項任務?或任何線索我如何開發這樣的功能?

我正在使用彈簧。 :)

+1

既然你提到數據庫訪問,你有沒有考慮過使用ORM框架,比如JPA?對每個getter和setter調用進行數據庫調用似乎是一個非常糟糕的主意...... –

回答

0

這是JEE攔截器(見http://docs.oracle.com/javaee/6/tutorial/doc/gkigq.html),它們在每個CDI框架(http://docs.oracle.com/javaee/6/tutorial/doc/gkhjx.html

實現入門與獨立的代碼(即這樣一個框架標準的情況下,無需設置服務器基礎設施)看看焊接-SEhttp://weld.cdi-spec.org/

注意,即 - 當你移動到CDI - 攔截器只對manged豆類工作,而不是爲你自己創建的數據對象。這可能需要一些重構。

+0

提示:該問題有一個「Spring」標記。 – zeroflagL