JAVA/SPRING
2009. 5. 6. 11:12
이전 글에 이어서 의존관계자동설정에 대해서 알아 보겠습니다.
스프링은 의존하는 빈 객체의 타입이나 이름을 이용하여 의존 객체를 자동으로 설정할 수 있습니다. 여기(The Spring Framework - Reference Documentation)에 자세한 내용이 있네요 ^^;
일단 네가지 방식이 존재합니다. 방식으로는
1. byName : 프로퍼티의 이름과 같은 이름을 갖는 빈객체를 설정
2. byType : 프로퍼티의 타입과 같은 타입을 갖는 빈객체를 설정
3. constructor : 생성자 파라미터 타입과 같은 타입을 갖는 빈객체를 설정
4. autodetect : constructor방식을 먼저 적용, byType방식을 적용
네 가지 방식이 있습니다.
일단 설정파일에 포함된 모든 빈 객체에 대해서 특정방시의 자동 설정을 적용하고 싶다면
이렇게 해주시면 됩니다.
autowire의 속성 값을 네가지
속성중에 하나만 주면 됩니다. 여기선 byName을 썼군요.
DI설정을 프로퍼티 방식(setter Injection)을 썼을경우에 autowire속성을 constructor로 하면 어떻게 될까요? 직접 해본 결과 오류가 납니다. ㅋㅋ 각 설정에 맞게 써 주어야 하고, 또 byType, constructor, autodetect의 경우 동일한 타입의 빈 객체를 2개 이상 정의를 하게되면 오류가 납니다. 지가 어떤빈을 써먹어야 할지 결정을 못하네요~
의존 관계를 자동으로 알맞게 설정해주는 기능은 설정파일의 크기를 줄여주고 유용한 기능이긴 하지만, 설정파일만으로 빈 객체간의 의존관계를 파악하기 힘들다는 단점이 있습니다. 규모가 커질수록~ 더 파악하기 힘들어지기때문에 상황에 맞게~ 되도록이면 설정파일에 의존관계를 명시하는 것이 좋은 방법이라고 합니다.
스프링은 의존하는 빈 객체의 타입이나 이름을 이용하여 의존 객체를 자동으로 설정할 수 있습니다. 여기(The Spring Framework - Reference Documentation)에 자세한 내용이 있네요 ^^;
일단 네가지 방식이 존재합니다. 방식으로는
1. byName : 프로퍼티의 이름과 같은 이름을 갖는 빈객체를 설정
2. byType : 프로퍼티의 타입과 같은 타입을 갖는 빈객체를 설정
3. constructor : 생성자 파라미터 타입과 같은 타입을 갖는 빈객체를 설정
4. autodetect : constructor방식을 먼저 적용, byType방식을 적용
네 가지 방식이 있습니다.
일단 설정파일에 포함된 모든 빈 객체에 대해서 특정방시의 자동 설정을 적용하고 싶다면
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:p="http://www.springframework.org/schema/p"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- default-autowire="byName">
- ...
- ...
- </beans>
네가지의 설정 중에서 예를 하나만 들겠습니다.
- <bean name="userService" class="yoyojyv.service.UserServiceImpl" autowire="byName"/>
DI설정을 프로퍼티 방식(setter Injection)을 썼을경우에 autowire속성을 constructor로 하면 어떻게 될까요? 직접 해본 결과 오류가 납니다. ㅋㅋ 각 설정에 맞게 써 주어야 하고, 또 byType, constructor, autodetect의 경우 동일한 타입의 빈 객체를 2개 이상 정의를 하게되면 오류가 납니다. 지가 어떤빈을 써먹어야 할지 결정을 못하네요~
의존 관계를 자동으로 알맞게 설정해주는 기능은 설정파일의 크기를 줄여주고 유용한 기능이긴 하지만, 설정파일만으로 빈 객체간의 의존관계를 파악하기 힘들다는 단점이 있습니다. 규모가 커질수록~ 더 파악하기 힘들어지기때문에 상황에 맞게~ 되도록이면 설정파일에 의존관계를 명시하는 것이 좋은 방법이라고 합니다.