java - 如何在 Spring 中手动定义 RestController?

标签 java spring spring-mvc

我有很多用 @RestController 注释的 RestController 类并且可以正常工作。但在某种情况下我必须手动添加其中一个。我想我可以在Spring配置类中定义一个bean,这样我就可以定义一个RestService,但是如何定义呢?

例如:

@Configuration
public class Config ..... {

    ............

    @RestController
    public MyRestService myRestService() {
        if(shouldUseTypeA){
             return new MyRestService<TypeA>(myParams);
        }else{
             return new MyRestService<TypeB>(myParams);            
        }
    }
}

最佳答案

如果 shouldUseTypeA 是您在应用程序启动之前知道的内容,请将其用作 Spring 配置文件并根据激活的配置文件实例化正确的 Controller 。

@Configuration
public class Config ..... {

    // Type A
    @Profile("shouldUseTypeA")
    @RestController
    public class TypeAService extends MyRestService<TypeA>(myParams){}

    // Otherwise type B
    @Profile("!shouldUseTypeA")
    @RestController
    public class TypeBService extends MyRestService<TypeB>(myParams){}
}

关于java - 如何在 Spring 中手动定义 RestController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40375705/

相关文章:

java - Spring在类级别使用@EnableScheduling进行注释

java - 需要说明一下Spring的好处

java.net.MalformedURLException : unknown protocol: localhost at controller. RestController.addService(RestController.java:62)

Spring 5 WebFlux Mono 和 Flux

java - 为什么bean定义存储在并发hashmap中?

java - 如何将 <Select> 和 &lt;input&gt; 数据从 View 传递到 Controller (Spring MVC)

java - 抛出异常时触发的事件

java - MaterialContainerTransform 过渡不适用于返回

java - Hibernate validator 异常

java - 如何在intellij上正确编译jnativehook?