반응형
setter 메소드를 통한 의존성 주입
- 의존성을 주입 받는 setter 메소드를 만들고 이를 통해 의존성 주입
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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-4.3.xsd">
<!-- 객체 생성 -->
<!--
SamsungTV samsung = new SamsungTV();
-->
<bean id="samsung" class="kr.or.tv.vo.SamsungTV"></bean>
<!-- 객체 생성하여 데이터 넣기1 (setter 사용) -->
<!--
Member m1 = new Member();
m1.setName("맨스필드");
m1.setAge(20);
m1.setAddr("서울");
-->
<bean id="m1" class="kr.or.tv.vo.Member">
<property name="name" value="맨스필드" />
<property name="age" >
<value type="java.lang.Integer">20</value>
</property>
<property name="addr" value="서울" />
</bean>
생성자를 통한 의존성 주입
<!-- 객체 생성하여 데이터 넣기2 (생성자 사용) -->
<!--
Member m2 = new Member("맨스필드2", 22, "창원")
-->
<bean id="m2" class="kr.or.tv.vo.Member">
<constructor-arg value="맨스필드2" />
<constructor-arg>
<value type="java.lang.Integer">22</value>
</constructor-arg>
<constructor-arg value="창원" />
</bean>
메소드를 통한 의존성 주입
MemberMgr
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MemberMgr {
private Member m;
}
xml - 위에서 생성한 m1을 mm에 넣음
<!-- 객체 생성하여 데이터 넣기(메소드 이용) -->
<!--
MemberMgr mm = new MemberMgr();
mm.setM(m1)
-->
<bean id="mm" class="kr.or.tv.vo.MemberMgr">
<property name="m" ref="m1"></property>
</bean>
서블릿
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//spring 설정 파일을 읽어오는 객체 생성
AbstractApplicationContext cntx = new GenericXmlApplicationContext("sample.xml");
//sample.xml 에서 생성한 객체를 읽어옴 (<bean id="samsung">)
//SamsungTV sTv = (SamsungTV)cntx.getBean("samsung");
//sTv.powerOn();
Member m1 = (Member)cntx.getBean("m1");
Member m2 = (Member)cntx.getBean("m2");
System.out.println(m1.getAddr());
System.out.println(m2.getAddr());
}
300x250
'개발자 > 자바 & 스프링' 카테고리의 다른 글
Spring Annotation / 스프링 어노테이션 / web.xml (0) | 2023.02.27 |
---|---|
Spring IoC / DL / DI / 결합도 (0) | 2023.02.24 |
Spring MAVEN / 스프링 메이븐, pom.xml (0) | 2023.02.23 |
JSTL c:if (조건문), c:choose, c:forEach(반복문) (0) | 2023.02.22 |
JSTL 태그 종류, 기본 문법, <c:set> , <c:out>, <c:remove> 코어 태그 (0) | 2023.02.22 |
댓글