환경 특정 값으로 Grails 서비스를 구성하는 가장 좋은 방법은 무엇입니까? 서비스 클래스 내에서환경 특정 Grails 서비스 구성
- 액세스의 GrailsApplication 값이나 Config.groovy 파일이나 resources.groovy에 콩 폐쇄에
- 구성 서비스 콩 : 나는 두 가지 옵션이있다 생각합니다.
나는 stackoverflow와 다른 곳에서 # 1 (서비스에서 grailsApplication에 액세스)하는 방법을 보여주는 게시물을 보았다. 그러한 게시물 중 하나는 Inject grails application configuration into service입니다.
그러나 이것이 서비스의 불필요한 결합을 Grails에 연결한다고 생각합니다. 값을 설정/삽입하는 대신 pojo에서 Spring의 applicationContext에 액세스하는 것과 비슷하지 않습니까? 또한, 나는 아직 서비스 클래스의 단위 테스트에서 작동하도록하는 행운이 없었어요.
두 권의 책에는 속성을 주입하는 예제가 있습니다 (접근법 # 2). Grails 2에 대한 확실한 안내서, 10 장, "서비스 구현 방법"절에서는 환경을 특정 값으로하지 않고이를 수행하는 방법을 보여줍니다. 그루비와 Grails Recipes, 섹션 16-2에서는 resources.groovy를 사용하는 예제도 보여 주지만 아직 작동하지는 못했습니다.
다음 블로그 게시물도 좋은 예가 있지만 환경에 따라 달라지지는 않습니다 : http://ldaley.com/post/1253952347/getting-more-out-of-property-override-configuration. Grails Reference의 15 장은 이러한 예제들과 일관성이 있으며 환경 별 기준으로 bean에 속성을 설정하는 방법을 보여줍니다.
그러나 어느 방법이든 어떤 방법 으로든 어떤 방법 으로든 의견을 제시하거나 합리적으로 생각할 수는 없습니다. 두 가지 접근법에 찬반 양론이 실제로 존재하지 않습니까? 사출 접근법이 단위 테스트보다 쉬우 며 일을 수행하는 봄 방법과 더 일관성이 있지 않을까요?
나단
덕분에, 그 사실은 의미가 있습니다. 마지막으로, 접근을위한 합리적인 일부! –
당신이 말했던 바에 따르면, grails 발명가는 스프링 구성에서 동일한 값이어야하는 값을 복제하는 것으로 설명한 문제의 유형 때문에 사고 방식이 바뀐 것으로 보입니다. 기본적으로 grailsApplication 하에서 중앙 집중화 된 설정 값에 대한 참조는 실질적인 개선점입니다. 아마도 groovy로 Java에서 설정하는 것보다 쉬울 수도 있었을 것입니다. 아마도 Spring에서도 옵션 일 것입니다. –
@NathanWard 재정의 구성 접근법은 특정 상황에서 주로 제어 할 수없는 bean (예 : 플러그인에서 제공하는 bean)에 속성 값을 삽입하려는 경우 매우 중요합니다. –