我的几个控制器上都有一个@CrossOrigin
注释。我希望能够在某处设置static final
并让所有引用。就像是:
public static final String[] ORIGINS = {"domain1","domain2"};
...
@CrossOrigin(origins = ORIGINS)
但是,我显然有一些语法问题。
解
对于那些对做同样的事情感兴趣的人,这是我所做的:
@Target({ElementType.FIELD, ElementType.PARAMETER, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@CrossOrigin(origins = {
"domain1",
"domain2"
})
@Controller
@interface CORSPermittedController {
}
这样我就可以用
@CORSPermittedController
注释所有控制器 最佳答案
不幸的是,您不能使用Java语法来做到这一点。属性值必须是编译常量(原始,String
文字或这些类型的数组)。
但是您可以编写一个bean后处理器,该处理器负责使用javassist在运行时将此注释放在类上。