내가 10 개의 grails 서비스를 가지고 있다고 가정 해 봅시다. 이 서비스들 각각은 REST 서비스를 호출 할 것입니다. 그래서 REST 코드를 캡슐화하여 10 개의 서비스에서 쉽게 다시 사용할 수 있도록하고 싶습니다. 고려 옵션에서grails 서비스 계층 구조
, I 수 :
1) REST 관련 코드와 다른 서비스 나 콩을 만들고 그것에게 (10 개) 서비스의 모든 일을 주입.
2) REST 코드를 포함하는 수퍼 클래스 서비스를 만들고 10 개의 모든 grails 서비스가이 클래스를 확장하도록한다.
나는 옵션 2와 함께 가고 싶지만, 수퍼 클래스에 의존성 주입 문제가있다.
예 :
class SuperService {
def aString
}
class ExampleService extends SuperService {
}
resources.groovy :
beans = {
superService(SuperService) {
aString = "something"
}
exampleService(ExampleService) {
}
}
통합 테스트를 실행하는 동안 내가 디버거에서이 프로그램을 실행할 때, 나는 aString의 값이 null 참조하십시오. 분명히 그것은 나를 위해 문제가 될 것입니다.
당신이 다음 resources.groovy과 같은 코드를 실행, 예상대로
= "뭔가"beans = {
superService(SuperService) {
}
exampleService(ExampleService) {
aString = "something"
}
}
및 aString.
그래서 구성 배선이 적어지기 때문에 옵션 2를 선호합니다.하지만 필자는 이것이 실현 가능한 접근 방식이 될 것이라고 생각하지 않습니다. 즉, 각 하위 클래스에 aString을 설정해야하는 경우 아무런 가치가 없습니다.
생각하십니까?
내가 누락 된 항목이 있습니까?
다른 옵션도 있습니다. 사전에
감사합니다, 토드
왜 옵션 2의 구성 배선이 덜 것이라고 생각합니까? –