맛동산

Simple Spring Maven에서 스프링 컨테이너 사용-2 본문

Web/Spring

Simple Spring Maven에서 스프링 컨테이너 사용-2

오지고지리고알파고포켓몬고 2017. 3. 12. 22:43

applicationContext.xml에서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
·¬
<?xml·version="1.0"·encoding="UTF-8"?>¬
<!--····-->¬
<beans·xmlns="http://www.springframework.org/schema/beans"¬
————xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"¬
————xmlns:p="http://www.springframework.org/schema/p"¬
————xsi:schemaLocation="http://www.springframework.org/schema/beans·http://www.springframework.org/schema/beans/spring-beans.xsd">¬
¬
————<!--·spring.di.ch01·-->¬
————<bean·id="message"·class="spring.di.ch01.MessageKr"/>·¬
————¬
————¬
————<!--·spring.di.ch02·-->¬
————<!--·<bean·id="serviceImpl"·class="spring.di.ch02.ServiceImpl"/>·-->¬
————<!--········-->¬
————¬
————<bean·id="serviceImpl"·class="spring.di.ch02.ServiceImpl">¬
————————<!--···DI·-->¬
————————<constructor-arg><!--·<constructor-arg·ref="daoImpl"/>···-->¬
————————————<ref·bean="daoImpl"/>¬
————————</constructor-arg>¬
————</bean>¬
————<bean·id="daoImpl"·class="spring.di.ch02.DaoImpl"/>¬
————¬
————¬
————<!--·spring.di.ch03·-->¬
————<bean·id="serviceImpl2"·class="spring.di.ch03.ServiceImpl">¬
————————<!--···DI·:·name=""·ref="id"·-->¬
————————<property·name="daoImpl"·ref="daoImpl2"/>·<!--·name·=···-->¬
————</bean>¬
————<bean·id="daoImpl2"·class="spring.di.ch03.DaoImpl"/>¬
————¬
————¬
————<!--·spring.di.ch04·-->¬
————<!--·<bean·id="moniter"·class="spring.di.ch04.SystemMoniter">¬
————————··DI·:·name=""·ref="id"¬
————————·¬
————————<property·name="time"·value="10"/>¬
————————¬
————————·¬
————————<property·name="smsSender"·ref="smssender"/>¬
————</bean>·-->¬
————<!--·p:=""·p:-ref="id"·-->¬
————<bean·id="moniter"·class="spring.di.ch04.SystemMoniter"¬
————————p:time="10"·p:smsSender-ref="smssender"/>¬
————<bean·id="smssender"·class="spring.di.ch04.SmsSender"/>¬
————¬
————<!--·spring.di.ch05·-->¬
————<bean·id="moniter2"·class="spring.di.ch05.SystemMoniter">¬
————————<constructor-arg·value="30"/><!--···-->¬
————————<constructor-arg·ref="smssender2"/><!--···-->¬
————</bean>¬
————<bean·id="smssender2"·class="spring.di.ch05.SmsSender"/>¬
————¬
————<!--·spring.di.ch06·-->¬
————<bean·id="list"·class="spring.di.ch06.ListCollection">¬
————————<property·name="userName">¬
————————————<!--·list···-->¬
————————————<list>¬
————————————————<value></value>¬
————————————————<value></value>¬
————————————————<value></value>¬
————————————————<value></value>¬
————————————</list>¬
————————</property>¬
————</bean>¬
————¬
————<!--·spring.di.ch07·-->¬
————<bean·id="map"·class="spring.di.ch07.MapCollection">¬
————————<property·name="map">¬
————————————<map·key-type="java.lang.String"¬
————————————————value-type="java.lang.Object">¬
————————————————<entry·key=""·value="80"/>¬
————————————————<entry·key=""·value="90"/>¬
————————————————<entry·key=""·value="85"/>¬
————————————</map>¬
————————</property>¬
————</bean>¬
</beans>¬
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


1. 더미 생성자아닐 경우 bean을 생성할 때 주입 시켜줘야함.

<bean id="serviceImpl" class="spring.di.ch02.ServiceImpl">

<!-- 생성자 이용 DI -->

<constructor-arg><!-- <constructor-arg ref="daoImpl"/> 도 가능 -->

<ref bean="daoImpl"/>

</constructor-arg>

</bean>


2. Setter()을 작성해두면 property 속성을 이용하여 세팅해줄 수 있음.

<bean id="serviceImpl2" class="spring.di.ch03.ServiceImpl">

<!-- 설정메서드 이용 DI : name="매개변수" ref="참조빈id" -->

<property name="daoImpl" ref="daoImpl2"/> <!-- name = 매개변수의 이름 -->

</bean>


3. p태그(?) 를 사용하여 세팅해줄 수 있음(이때도 setter메서드는 있어야하는듯)

<bean id="moniter" class="spring.di.ch04.SystemMoniter" p:time="10" p:smsSender-ref="smssender"/>


4. 생성자에 파라미터가 여러개 일 경우

<bean id="moniter2" class="spring.di.ch05.SystemMoniter">

<constructor-arg value="30"/><!-- 첫번째 파라미터 -->

<constructor-arg ref="smssender2"/><!-- 두번째 파라미터 -->

</bean>


5. List 객체에 값을 넣을 경우 - List<string> userName일 때 setUserName(List<String> userName){...}

<bean id="list" class="spring.di.ch06.ListCollection">

<property name="userName">

<!-- list 원소 추가 -->

<list>

<value>홍길동</value>

<value>길순신</value>

<value>신감찬</value>

<value>유관순</value>

</list>

</property>

</bean>

(만약 List<Class>라면 ref로 주입하면 되는걸까?)


6. Map 객체 넣을 경우 - Map<String, Object> map일 때 setMap(Map<String, Object> map){...}

<bean id="map" class="spring.di.ch07.MapCollection">

<property name="map">

<map key-type="java.lang.String"

value-type="java.lang.Object">

<entry key="홍길동" value="80"/>

<entry key="이순신" value="90"/>

<entry key="유관순" value="85"/>

</map>

</property>

</bean>

Comments