2014-07-03 43 views
1

是否有任何現有的庫用於AspectJ的聲明參數驗證?用AspectJ在java中聲明參數驗證

一些示例代碼,我現在使用:

public void someFunction(Object first, Object second){ 
    condition(notEqual(first,second), "exception message"); 
    //... 
} 

條件()是引發異常的唯一方法,所有其他的驗證方法返回布爾...服用點類似於彈簧或阿帕奇驗證utils的...

這樣的技術爲AspectJ的我想刪除的類似代碼的所有occurrances與註解......像這樣

現在:

@Validate({ 
     "not equal : first, second", 
     "not null or empty : first" 
}) 
public void someFunction(Object first, String second){ 
    //... 
} 

有什麼好用或者我應該創建一個?

回答

0

實際上,因爲我找不到任何接近我所描述的內容,所以我自己寫了它,並在github上發佈了https://github.com/vach/valida,我將在域名準備就緒後立即在Maven中央回購站上發佈它。

現在那些誰可能想現在就試試吧:

  1. 下載並解壓this到本地回購
  2. 添加依賴關係的pom.xml

    <dependency> 
        <groupId>com.vach</groupId> 
        <artifactId>valida</artifactId> 
        <version>1.0-SNAPSHOT</version> 
    </dependency> 
    
  3. 確保AspectJ織已啓用
1

的IntelliJ有靜態分析

http://www.jetbrains.com/idea/webhelp/@contract-annotations.html

我不知道它是開源的庫(它可能是,他們的代碼基礎的很大一部分),以及您是否可以使用它在你的建議,或者它是否值得(通過滾動你自己的)。

當然也有javax.validation包,這是javaEE6/7的一部分。應該有很多開源的實現。你應該能夠註釋實際的方法參數。你將不得不寫你自己的建議,但驗證可能會被移交。