Bean 의존관계 설정방법
Setter Injection : <property> 태그
- Setter 메서드를 통해 의존관계가 있는 bean을 주입하려면 <property> 태그를 사용할 수 있다.
- ref 속성을 사용하면 빈 이름을 이용해 주입할 빈을 찾는다.
- value 속성은 단순 값 또는 빈이 아닌 객체를 주입할 때 사용한다.
Constructor Injection : <constructor-arg> 태그
- Constructor을 통해 의존관계가 있는 빈을 주입하려면 <constructor-arg> 태그를 사용할 수 있다.
- Constructor의 주입방식은 생성자의 파라미터를 이용하기 때문에 한번에 여러개의 객체를 주입할 수 있다.
POJO 클래스 수정 및 Bean 설정 파일 수정
프로퍼티(Property) 값 설정 방법
단순 값(문자열이나 숫자)의 주입 (injection)
- setter 메서드를 통해 Bean의 레퍼런스가 아니라 단순값을 주입하려고 할 때는 <property> 태그의 value 속성사용
<bean id="hello3" class="myspring.di.xml.Hello">
<property name = "name" value="스프링" />
</bean>
컬렉션(Collection) 타입의 값 주입 (injection)
- Spring은 List, Set, Map, Properties 와 같은 컬렉션 타입을 xml로 작성하여 프로퍼티에 주입하는 방법을 제공한다.
- List, set 타입 - <list> <value> 태그 이용
- 프로퍼티가 Set 타입이면 <list> 대신 <set>을 사용한다.
- Map 타입 : <map>, <entry> 태그를 이용
POJO 클래스 및 Bean 설정파일 수정
DI 테스트 클래스 수정
프로퍼티(property) 파일을 이용한 값 설정 방법
환경에 따라 자주 변경되는 내용의 분리
- xml의 빈 설정 메타정보는 애플리케이션 구조가 바뀌지 않으면 자주 변경되지 않는다.
- 반면에 프로퍼티 값으로 제공되는 일부 설정정보 (DB 연결정보 등) 은 애플리케이션이 동작하는 환경에 따라 자주 바뀔 수 있다.
- 변경되는 이유와 시점이 다르다면 분리하는 것이 맞다.
- 환경에 따라 자주 변경될 수 있는 내용은 properties파일로 분리하는 것이 가장 깔끔하다. 키와 값의 쌍 (key=value)로 구성하면 된다.
환경에 따라 자주 변경되는 내용의 분리 예시
<bean id="dataSource"
class="org.springframework.jdbc.datasource.SimpleDriverSource">
<property name="driverClass" value="com.sql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost/testdb" />
<property name="username" value="spring" />
<property name="password" value="123" />
</bean>
- 프로퍼티 파일로 분리한 정보는 ${} 프로퍼티 치환자를 이용하여 설정한다.
- ${} 값을 치환해주는 기능은 <context:property-placeholder> 태그에 의해 자동으로 등록되는 PropertyPlaceHolderConfigurer Bean이 담당한다.
Bean 설정파일 수정
DI 테스트 클래스 수정
'Back-end > Spring' 카테고리의 다른 글
사용자 관리 프로젝트 (0) | 2021.06.10 |
---|---|
DI 애플리케이션 작성(4) (0) | 2021.06.10 |
DI 애플리케이션 작성(2) (0) | 2021.06.10 |
DI 애플리케이션 작성(1) (0) | 2021.06.10 |
IoC와 DI (0) | 2021.06.09 |