我有很多用@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配置文件,并根据已激活的配置文件实例化权限控制器。

@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){}
}

10-05 17:57