我建立使用Grails 3.3.0和弹簧引导+ Grails应用程序春天启动1.5.6.RELEASE构建上下文(消费者客户端)特定弹性应用
我有控制器服务JSON数据消费者客户端应用程序。
ExampleController.groovy
class ExampleCotnroller {
def endpointServerJosn(){
}
}
最近引入一个更多的消费者,并预计类似的JSON数据,但来自不同的来源。
所以我加了一个标志,我application.yml another.client =真和修改我的控制器:
更新ExampleController.groovy
class ExampleCotnroller {
def endpointServerJosn(){
if(another.client){
//server data from this client's source
}else{
//server data from other client's source
}
}
}
但我期待更多的设置的客户和这将弄乱我的控制器,因为我没有找到我的解决方案可扩展的设计。这里每个客户端都有自己的从属API控制器来获取数据。
客户机1发送请求 - >主(我的控制器)拦截,调用相关的客户端一个 矿石多个从属的API,取出数据并聚集它 并发送回数据
simiallarly,客户机2发送请求 - >主(我的控制器) 拦截,调用一个或相关客户端以上从属的API 2
我想具有抽象控制器等:
class AbstractApplicationController{
def endpointServerJson();
}
class FirstCilentController extends AbstractApplicationController {
}
class SecondClientController extends AbstractApplicationController {
}
以上设计是否可以实现可扩展的解决方案?应用程序可以根据外部yml或application.yml文件中的配置选择要使用哪个控制器?