less than 1 minute read

★DI(Dependency Injection, 의존성 주입) 객체 구동에 다른 객체가 필요하게끔 만드는 프로그래밍 방법. 기능이 다른 두 객체를 분리해서 구현하는 것이다. 예를들어 건전지와 장난감을 분리하는 것

★스프링 컨테이너가 모든 객체의 인스턴스를 가져야 하기 때문에 사용하는 기능이다.

★ DI방식1 생성자(태그)를 통해 의존객체를 주입함 ★DI방식2 setter를 통해 의존객체를 주입할 때는 요롷게 하면 됌 name에 들어가는 변수는 기본자료형+String 역시 가능하며 아무값이나 넣으면 알아서 타입캐스트 해준다.

★생성자를 이용한 DI </bean> 이렇게 DI가 이루어졌고, 자바코드는 깔끔해 진다.

★setter를 이용한 DI setter메소드의 이름과 property의 name값이 규칙에 맞아야 한다.

★setter를 이용한 DI - 리스트 넣기 샤이니 엘로이 제스퍼

★setter를 이용한 DI - 맵 넣기 샤이니 샤이니@naver.com </entry>

	<enrty>
		<key>
			<value>엘로이</value>
		</key>
		<value>샤이니@naver.com</value>
	</entry>

	<enrty>
		<key>
			<value>제스퍼</value>
		</key>
		<value>샤이니@naver.com</value>
	</entry>
</property>

★또한 기능별로 applicationContext(스프링 설정파일이라고 한다)를 여러 파일로 분리한 뒤 String[] appCtxs = {“classpath:appCtx1.xml”, “classpath:appCtx2.xml”, “classpath:appCtx3.xml”}; GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(appCtxs); 이렇게 배열을 사용해서 context를 로드할 수도 있고, 하나의 설정파일에서 import해서 모아놓은 뒤 사용할 수도 있다.

★Bean의 범위 스프링 컨테이너에서는 기본적으로 싱글톤으로 인스턴스들을 생성한다. 따라서 똑같은 id값의 객체를 스프링 설정파일에서 불러오게되면 같은 값만이 튀어나오게 된다. 다만 bean의 속성 중 scope=”prototype”을 설정하면 getBean을 호출할 때 마다 새로운 객체를 생성하게 된다.

Categories:

Updated: