是否可以创建我自己的自定义注释来充当 Spring @Controller 注释?

Art*_*hur 1 java spring spring-boot

在我的 Spring 应用程序中,我有带有两个注释的控制器:

@Controller - Spring注解

@AdminPanelController - 我的注释

是否可以更改我的注释,以便我可以使用 if 而无需另外放置 @Controller ?

我希望 Spring 将我的注释处理为 @Controller 注释。

Hai*_*man 5

您的问题缺少一些关于您的需求的详细解释,但我的假设是您不想将注释和 @Controller 都放在管理面板控制器上。你想要Spring-MVC,你就明白任何@AdminPanelController都是一个@Controller。
这正是 Spring 4.0 中的 @RestController 注解,任何 @RestController 都是一个 @Controller (参见源代码)。所以你的 @AdminPanelController 注释应该类似于下面的注释

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
public @interface AdminPanelController {
    String value() default "";
}
Run Code Online (Sandbox Code Playgroud)

因此,尽管 java 注释不支持我们期望的继承(请参阅为什么不可能在 Java 中扩展注释?),但由于元注释,这将适用于 spring-mvc (我使用 4.1 对此进行了测试)。