2016. 9. 11.

[Spring] constructor-arg

constructor-arg

  • spring에서 xml로 bean파일들을 설정할 때 쓰는 태그이다.
  • bean id나 name이 생성자함수일 때 이 태그로 값 설정가능.


1
2
3
4
5
6
7
8
9
10
11
<context:annotation-config />
<bean id="car" class="com.sk.spring.SportCar">
 <constructor-arg value="SM7" />
 <constructor-arg value="회색" />
</bean>
<bean id="svr" class="com.sk.spring.CarService">
 <constructor-arg ref="car"/>
</bean>
cs

1. context:annotation-config
: CommonAnnotationBeanPostProccessor 클래스는 아래 4가지의 어노테이션 태그로 처리하며, context:annotation-config는 이를 모두 처리하는 태그이다. 따라서 특별한 상황이 아니라면 이 태그를 xml파일에 써주는 것이 좋다. 그리고 각각의 어노테이션들은 bean id나 name으로 지정된, 해당 프로퍼티가 설정된 메소드에 붙여주는 것이다. 


- RequiredAnnotationBeanPostProcessor
: @Required 어노테이션을 처리한다. 이는 필수 프로퍼티를 명시할 때 쓴다.

- AytowiredAnnotationBeanPostProcessor
: @Autowired 어노테이션 처리. 이는 의존하는 객체들(getter, setter)을 자동삽입한다.
- CommonAnnotationBeanPostProcessor
1) @Resource 처리. 의존객체들을 전달한다. autowired 어노테이션은 스프링 프레임워크 패키지 기반인 반면, resource 어노테이션은 표준자바 패키지이므로 호환이 더 잘된다.
2) @PostConstruct 처리.
3) @PreDestroy 처리.
- ConfigurationClassPostProcessor
: @Configuration 어노테이션 처리. 이는 스프링설정 xml에 beans로 보면 된다.




2. constructor-arg
: 이 태그로 설정된 값은 bean id나 name로 정의된 함수의 파라미터로 간다. 따라서 위 코드에서 car함수에 SM7과 회색 파라미터가 직접 설정되었고, svr함수에는 car객체가 파라미터로 전달되었다.
- value는 직접 값전달
- ref는 reference로써 해당이름을 가진 bean객체전달

댓글 없음:

댓글 쓰기