[英]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.