我有很多用@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){}
}