SpringBoot禁用特定的控制器类

如果想禁用一个或多个 @RestController 注解标注的类,可以使用以下方式:

使用 @ComponentScan

在应用程序的主类上注解 @SpringBootApplication,并使用 exclude 属性指定要排除的 @RestController 类。

例如:

@SpringBootApplication(exclude = MyRestController.class)
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}

说明:在上面的示例中,指定了要排除的组件 MyRestController.class,Spring Boot 将不会扫描到 MyRestController 类。

使用 @ConditionalOnMissingBean

在需要禁用的 @RestController 类上添加 @ConditionalOnMissingBean 注解,并指定该类的 bean 名称。

例如:

@RestController
@ConditionalOnMissingBean(name = "myRestController")
// 两者二选一
// @ConditionalOnMissingBean(MyRestController.class)
public class MyRestController {

    // rest controller code here

}

说明:在上面的示例中,使用了 @ConditionalOnMissingBean 注解,并指定该 Bean 的名称为 myRestController。当 myRestController 对应的 Bean 存在时,该 Controller 就会被禁用。

无论是第一种还是第二种方法,被禁用的 @RestController 类将不会被扫描或生效。

使用这两种方法中的任何一种,都可以禁用特定的控制器类。

你可能感兴趣的:(SpringBoot,禁用控制类,Controller)