setXxx() 형태의 설정 메서드를 통해서 전달받는 방법으로 프로퍼티 설정 방식
1. 의존하는 객체를 전달받을 setter를 작성한다.
2. 설정파일(XML파일) 에 <property> 태그를 이용한다
3. 객체 == <ref>
String / 기본데이터타입 == <value>
setter로 꺼낼때에는 반드시 기본 생성자가 있어야함 을 기억하자.
사용할 변수를 선언후 setter를 셋팅하자.
[Foo.java]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class Foo { Bar bar; Baz baz; String s; int i; public void setS(String s) { this.s = s; } public void setI(int i) { this.i = i; } public void doFoo() { System.out.println(s + " " + i); } | cs |
[DITest.xml]
1 2 3 4 5 6 | <bean id="bar" class="spring.DI.Bar" /> <bean id="baz" class="spring.DI.Baz" /> <bean id="foo" class="spring.DI.Foo"> <property name="s" value="Spring" /> <property name="i" value="10" /> </bean> | cs |
클래스가아닌 일반 변수이므로,
value값으로 꺼낼값을 저장한다.
name == setter에 있는 변수명.
value == 일반변수
[MainDI.java]
1 2 3 4 5 6 7 | public static void main(String[] args) { ApplicationContext context = new GenericXmlApplicationContext("DITest.xml"); Foo f = context.getBean("foo", Foo.class); // 캐스팅을 해주는 방법도 있지만, 함수 뒤에 변수를 하나더 넣어 // Foo클래스타입으로 꺼낸다고 명시 해주는게 더 좋다. f.doFoo(); } | cs |
1. ApplicationContext가 "DITest.xml" 의 문서에 저장된 bean정보들을 전부 객체화 해준다.
2. 그것을 getBean해서 객체화
3. f라는 변수로 저장한 doFoo실행 == System.out.prinln 실행.
'JAVA > Spring' 카테고리의 다른 글
Spring을 통한 jdbc연결 (0) | 2018.09.10 |
---|---|
Spring 예제 - 어노테이션 , @Aspect (0) | 2018.09.10 |
Spring예제 - bean과 aop혼합사용 (0) | 2018.09.05 |
Spring예제 - bean컨테이너 사용 (1) | 2018.09.05 |
Spring(maven / gradle) 설치, 순서 (0) | 2018.09.05 |