내가 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 컨트롤러를 사용하여 데이터를 가져옵니다. > 마스터 (내 컨트롤러)을 차단 클라이언트와 관련된 하나 광석 이상의 슬레이브 API를 호출, 데이터를 가져 와서 그것을 를 집계하고 데이터를 다시
이 simiallarly, 클라이언트 2는 요청을 보냅니다 전송 -
클라이언트 (1)는 요청을 전송 -> 마스터 (내 컨트롤러) 차단은 호출 한 클라이언트에 관련된 이상의 슬레이브 API를 내가 같은 추상 컨트롤러있는의 생각이
:
을class AbstractApplicationController{
def endpointServerJson();
}
class FirstCilentController extends AbstractApplicationController {
}
class SecondClientController extends AbstractApplicationController {
}
위의 디자인으로 확장 가능한 솔루션을 얻을 수 있습니까? 응용 프로그램에서 구성을 기반으로 선호하는 컨트롤러를 외부 yml 또는 application.yml 파일에서 선택할 수 있습니까?