是否可以创建我自己的自定义注释作为 Spring @Controller 注释?
Is it possible to create my own Custom Annotation that act as Spring @Controller annotation?
在我的 Spring 应用程序中,我有带有两个注释的控制器:
@Controller - Spring 注释
@AdminPanelController - 我的注释
是否可以更改我的注释,以便在不需要另外放置 @Controller 的情况下使用?
我希望 Spring 将我的注释处理为 @Controller 注释。
我有理由相信,您只需用 @Controller 注释 AdminPanelController
你的问题缺少一些关于你的需求的详细解释,但我的假设是你不想在你的管理面板控制器上同时放置你的注释和@Controller。你想要 Spring-MVC 你明白任何 @AdminPanelController 都是一个 @Controller.
这正是 Spring 4.0 中的 @RestController 注释,任何 @RestController 都是一个 @Controller(参见源代码 code)。
所以你的@AdminPanelController 注释应该类似于下面的注释
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
public @interface AdminPanelController {
String value() default "";
}
所以尽管 java 注解不支持我们期望的继承(参见 Why is not possible to extend annotations in Java?) this will work for spring-mvc thanks to meta-annotation(我用 4.1 测试过)。
在我的 Spring 应用程序中,我有带有两个注释的控制器:
@Controller - Spring 注释
@AdminPanelController - 我的注释
是否可以更改我的注释,以便在不需要另外放置 @Controller 的情况下使用?
我希望 Spring 将我的注释处理为 @Controller 注释。
我有理由相信,您只需用 @Controller 注释 AdminPanelController
你的问题缺少一些关于你的需求的详细解释,但我的假设是你不想在你的管理面板控制器上同时放置你的注释和@Controller。你想要 Spring-MVC 你明白任何 @AdminPanelController 都是一个 @Controller.
这正是 Spring 4.0 中的 @RestController 注释,任何 @RestController 都是一个 @Controller(参见源代码 code)。
所以你的@AdminPanelController 注释应该类似于下面的注释
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
public @interface AdminPanelController {
String value() default "";
}
所以尽管 java 注解不支持我们期望的继承(参见 Why is not possible to extend annotations in Java?) this will work for spring-mvc thanks to meta-annotation(我用 4.1 测试过)。