想想下面的註釋:
@With(CacheAction.class)
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface Cached {
String key();
Long expires();
String region();
}
通過上面的註釋,你可以註釋喜歡你的行動:你會怎麼通過這些高速緩存配置的構成動作用
@Cached(
key = "my.cached.page",
expires = 30,
region = "pages"
)
public Result index() {
...
}
所以@With
註釋?你不能。 @With
非常好,如果您不必配置組合操作的行爲方式,比如登錄文檔示例。但是,如果你需要,他們宣佈自己的註釋是必要的。
的Action
類希望註釋類型,因爲你就可以檢索configuration
同時調用組成行動:
public CompletionStage<Result> call(Context ctx) {
Cached cacheConfiguration = this.configuration;
String key = cacheConfiguration.key();
Long expires = cacheConfiguration.expires();
string region = cacheConfiguration.region();
...
}
最後,定義自己的註釋是好事,因爲你可以更好地表達語義有關他們(這是一個@Cached
動作,這是一個動作@Authenticated
等)。