Backend/Spring
Spring - Dependency Injection
Jayyy.H
2021. 1. 31. 16:29
학습하며 정리한 내용을 올리는 것이니, 참고용으로만 봐 주시길 바랍니다.
자바 스프링 프레임워크(renew ver.) - 신입 프로그래머를 위한 강좌
Dependency Injection
- 생성자를 이용한 DI
<bean id="studentDao" class="ems.member.dao.StudentDao" ></bean>
<bean id="registerService" class="ems.member.service.StudentRegisterService">
**<constructor-arg ref="studentDao" ></constructor-arg>**
</bean>
: src/main/resources/applicationContext.xml
파일에 <constructor-arg ref="studentDao" >
를 이용해 의존성 주입
- setter를 이용한 DI
public class DataBaseConnectionInfo {
private String jdbcUrl;
private String userId;
private String userPw;
public String getJdbcUrl() {
return jdbcUrl;
}
...
<bean id="dataBaseConnectionInfoDev" class="ems.member.DataBaseConnectionInfo">
<property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:xe" />
<property name="userId" value="scott" />
<property name="userPw" value="tiger" />
</bean>
: <property name="jdbcUrl" value= ... />
를 이용해 주입
- List 타입 DI 주입
public void setDevelopers(List<String> developers) {
this.developers = developers;
}
<bean id="informationService" class="ems.member.service.EMSInformationService">
<property name="developers">
<list>
<value>Cheney.</value>
<value>Eloy.</value>
<value>Jasper.</value>
<value>Dillon.</value>
<value>Kian.</value>
</list>
</property>
Map 타입 DI
<property name="administrators"> <map> <entry> <key> <value>Cheney</value> </key> <value>cheney@springPjt.org</value> </entry> <entry> <key> <value>Jasper</value> </key> <value>jasper@springPjt.org</value> </entry> </map> </property>
: 아래와 같이 value 위치에 bean 객체를 넣을 수 있음
<entry> <key> <value>dev</value> </key> <ref bean="dataBaseConnectionInfoDev"/> </entry>