본문 바로가기

Web Programming/SPRING

[SPRING] 2-1. DI를 이용한 객체 생성 (3)

Servlet(Controller)만 servlet Container에서 관리됩니다. servlet-mapping, servlet-url, @WebServlet으로 요청되며 요청에 따라 tomcat(servlet-container)이 실행할 servlet을 판단합니다. 

Spring container는 등록한 객체를 전부 관리합니다. service 객체를 container에서 관리함으로써 선언적 트랜잭션이 가능합니다. bean 설정 파일을 통해 등록합니다. 

트랜잭션에 대한 관리인 직접 커밋과 롤백을 하지 않아도 예외와 성공 여부에 따라 자동으로 이루어집니다. 코드가 복잡해지는 경우에는 생각보다 힘들기 때문에 아주 편리한 부분입니다.

VO는 공유되는 것이 아니기 때문에 사용할 때 생성하여 사용합니다.

XML Bean configuration을 이용한 bean설정을 살펴보겠습니다.

bean에 대한 주입은 setter와 constructor를 이용하여 할 수 있습니다. bean에 대한 설명이 담겨있는 설명서를 구성하여야 합니다.

bean injection이 잘 되었는지 확인해보기 위해서 logger와 junit을 동해서 확인해 보겠습니다.

Junit테스팅을 위해서는 다른 설정이 필요합니다. junit 테스팅 중 spring 컨테이너를 생성하여 스프링 환경에서 테스팅이 가능하도록 @RunWith(SpringJunit4ClassRunner.class)를 설정해 주어야합니다. 또한 스프링에 대한 설정 context파일의 위치 경로를 입력합니다. DI 동일한 타입이 있는 지 확인 후 주입받기 위해 @Autowired를 설정해 줍니다.

Junit 테스트를 통해 xml을 바탕으로 스프링 빈이 잘 생성되었는지 확인합니다. setter 주입을 확인하겠습니다.

테스트를 통해 주입이 되는지 확인할 수 있습니다.

bean을 직접 주입받아서 하겠습니다. 작성한 테스트 코드가 스프링 컨테이너의 빈이라고 생각하고 각각을 주입을 받았다고 생각합니다. 

두개가 같은지 확인하기 위해 assertEquals를이용하여 테스트 합니다.