뚝딱뚝딱 웹프로그래밍☆
스프링의 의존성(DI) 본문
스프링의 주요 기능중의 하나는 DI 패턴을 지원하는것인데 이는 스프링의 컨테이너에 빈 객체를 저장하고 있어 각 객체간의 의존관계를 관리
할수 있는 것을 말합니다. 의존 개념을 적용한 프로그램은 설계가 편하고 사후 관리가 편해 변경에 용이합니다.
ex)
MemberDao memberDao = new MemberDao();우리는 객체를 생성 할 때 보통 이런 식으로 생성합니다. 하지만 이렇게 생성할 경우 의존성이 높아 지기 때문에 의존성을 낮추기 위해 의존 관계를 생성자를 통해 주입 합니다.
public MemberRegister(MemberDao memberDao) { this.memberDao = memberDao; } MemberDao memberDao = new MemberDao(); MemberRegister svc = new MemberRegister(memberDao)위처럼 생성자를 선언하고 컨테이너 조립기에서 의존관계를 생성자를 통해서 주입하게 됩니다.
※ 여기서 컨테이너 조립기는 스프링 컨테이너에서 자동적으로 설정을 해주나 이해를 돕기 위해 예시 코드를 보여드립니다.
그러면 실제 스프링의 DI는 어떻게 설정 될까?
위에서 말했다시피 스프링은 객체를 관리하는 컨테이너를 제공합니다.
컨테이너에 객체를 담아두고, 객체가 필요할 때 컨테이너로 부터 객체를 가져와 사용할 수 있도록 합니다.
먼저 객체를 가져오기 위해서는 xml에 설정을 연결다리를 놓아 주어야 합니다. src/main/resources에 있는 sample.xml로 들어갑니다.
만약 Test라는 클래스에서 memberDao라는 객체를 사용 하려면 아래처럼 설정하면 됩니다. ( ※ 태그를 이용하여 의존하는 객체를 전달. )
그뒤 사용할 클래스에서 생성자의 파라미터를 통해서 전달받아 사용하면 됩니다.
ctx = new GenericXmlApplicationContext("sample.xml"); // 각 xml이름 넣어주면 됩니다. Test memberDao =ctx.getBean("test", Test.class);
'Spring' 카테고리의 다른 글
스프링 AOP (0) | 2018.10.12 |
---|---|
스프링 STS 초기설정 방법 (0) | 2018.10.12 |
Comments