2011-04-13 6 views
1

Grails에서 제공하는 Spring DSL을 사용할 때 생성자 주입을 할 수 있습니다. 그렇다면 예를 들어 주시면 감사하겠습니다.Grails와의 의존성 삽입 Spring DSL

생성자 삽입이 불가능한 경우 종속성을 공개 속성으로 지정하지 않고 스프링 빈을 주입 할 수있는 다른 방법이 있습니까? 자바 프로젝트에 스프링을 사용하여 나는이

class Foo { 

    @Autowired 
    private Bar bar 
} 

을 수행 할 수 있습니다 그리고 그것은 어느 이름으로 Bar 종속 관계를 autowire하기 또는 보통에서 할 것 같은 @Autowired 주석을 사용하여 inject a bean into the constructor

답변

4

당신이 심판을 사용, 생성자의 인수로 다른 빈을 참조 할 때마다 심지어 BeanBuilder DSL

bb.beans { 
    exampleBean(MyExampleBean, "firstArgument", 2) { 
     someProperty = [1,2,3] 
    } 
} 

를 사용하여 생성자 주입을 사용하는 것이 가능하다() 메소드

bb.beans { 
    exampleBean(MyExampleBean, "firstArgument", ref('anotherBean')) { 
     someProperty = [1,2,3] 
    } 
} 
+0

http://grails.org/doc/latest/guide/14.%20Grails%20and%20Spring.html#14.4%20The%20BeanBuilder%20DSL%20Explained –

+0

이 작업은 훌륭하지만 왜 'constructorArgs = ref (' someBean ')'잘 작동합니까? – raffian

2

당신은 할 수 있어야 입력합니다 봄. 다음은 예입니다 :

class Foo { 
    private final Bar bar 

    @Autowired 
    public Foo(Bar bar) { 
     this.bar = bar 
    } 
} 
관련 문제