Java 如何将spring控制器限制在RESTAPI级别,但不进行注册

Java 如何将spring控制器限制在RESTAPI级别,但不进行注册,java,spring,spring-boot,spring-mvc,Java,Spring,Spring Boot,Spring Mvc,我有一个用@controller注释的spring控制器,我想让这个控制器基于环境变量为restapi服务。我已将@Conditional与条件一起放入此控制器。通过此更改,spring没有将此控制器注册到我不希望发生的上下文中,因为我正在另一个sprigbean类中自动连接此控制器,并使用此控制器中的一些方法。 然后,我从类级别删除了@Conditional,并将它们放在控制器方法级别,在这里我有@RequestMapping,我认为控制器类将注册到spring上下文中,但这些方法在REST客

我有一个用@controller注释的spring控制器,我想让这个控制器基于环境变量为restapi服务。我已将@Conditional与条件一起放入此控制器。通过此更改,spring没有将此控制器注册到我不希望发生的上下文中,因为我正在另一个sprigbean类中自动连接此控制器,并使用此控制器中的一些方法。 然后,我从类级别删除了@Conditional,并将它们放在控制器方法级别,在这里我有@RequestMapping,我认为控制器类将注册到spring上下文中,但这些方法在REST客户端是不可访问的。但这并不奏效

我想让我的spring控制器类注册到spring上下文中,这样我就可以在另一个spring bean中自动连接这个控制器类并使用它的方法,但主控制器不应该通过REST API级别可用,也就是说,如果我试图从外部调用REST API到这个控制器,只有当某个环境变量为真时,它才起作用

我的示例代码

@Controller @Conditional(EnvironmentIsPresent.class)
@RequestMapping(value = "/api/v1/apps")
public class AppsController {

   @RequestMapping(method = RequestMethod.GET)
   public JsonObject getApps(){
       ///...
   } 
}