簡體   English   中英

帶有grails的java注釋處理器

[英]java annotation processor with grails

我正在嘗試使用grails創建自定義注釋。 我認為我不需要AST轉換。 我只想在調用方法(及其參數)之前添加一些驗證。

我創建了以下內容:

> interface(ValidateSomething.java)

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface ValidateSomething {

}

>處理器(ValidateSomethingProcessor.java)

@SupportedAnnotationTypes({"annotations.ValidateSomething"})
class ValidateSomethingProcessor extends AbstractProcessor {
    @Override
    public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
        System.out.println("Hello world! :D");
        return true;
    }
}

> {grails根} /web-app/META-INF/services/javax.annotation.processing.Processor

annotations.api.ValidateSomething

>的TestController

@ValidateSomething
def index() {
    println "test"
}

當我運行控制器動作時,它只打印“test”。

我忘記了什么嗎? 我還需要做其他事情嗎?

謝謝。

批注處理是javac中的一種工具,用於在編譯時而非運行時掃描和處理批注。 你想要做的是攔截方法調用。 為此,您可以使用java攔截器或aspectj。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM