DI_2
1. Bean 정의 파일로 DI
1_1. BeanFactory
- DI 컨테이너의 핵심이 됨
- BeanFactory는 실행 시에 건네지는 Bean정의 파일(applicationContext.xml)을 바탕으로 인스턴스를 생성하고 인젝션한다
- 웹 어플리케이션 개발에 개발자가 직접 이용하는 일은 별로 없다
- ClassPathXmlApplicationContext는 BeanFactory의 상위에 있다
- BeanFactory의 이용
1) Bean정의 파일
- Bean의 정의 파일을 프로퍼티, xml, LDAP 등으로 다루지만 XML이 일반적이다
- Bean정의 파일 이용시 Setter 메소드가 필요하다
- applicationContext.xml
- ProductServiceImpl
2) Bean 정의 파일 분할
- 규모가 커질수록 빈 정의 파일을 분할 하는게 좋다
- applicationContext.xml
- applicationContext-bean.xml
- import.xml
3) 프로퍼티 파일 이용
a. bean정의 파일 경우
- message.properties
- applicationContext.xml
- MessageServiceImpl
b. annotation 경우
- applicationContext.xml
- MessageServiceImpl
2. ApplicationContext
- ApplicationContext 는 BeanFactory를 확장해 Bean 정의파일 읽기, 메세지 소스, 이벤트 처리 등의 기능을 추가한것이다
2_1. Bean 정의 파일 읽기
- 웹 어플리케이션은 ContextLoaderListener 클래스나 ContextLoaderServlet 클래스에 의해 자동으로 ApplicationContext(XmlWebApplicationContext 클래스)가 로드됨
a. web.xml
b. 복수의 Bean 정의 파일
c. 웹 어플리케이션에선 ApplicationContext를 클래스에서 직접 이용할 일이 없지만 간단한 예제 어플리케이션을 만들때는 아래처럼 사용한다
d. ApplicationContext를 POJO로 만들어진 클래스에 직접 이용할떄
- @Autowired를 사용
3. Spring logging
- 스프링은 기본적으로 Commons Logging으로 로그를 출력함
- Log4j라이브러리가 있으면 Commons Logging이 Log4j를 사용한다
- WEB-INF 또는 클래스 패스 아래에 두면 사용가능하다
- log4j.xml
4. Spring unitTest
- DI 컨테이너로 관리하는 오브젝트를 유닛 테스트하기 위한 기능이 제공됨
- Test.java
- 데이터 베이스 테스트시 자바의 내장 데이터베이스를 사용한다
'Back-End > SpringFrame_1' 카테고리의 다른 글
[Spring] DataAccessLayer_1 (0) | 2016.07.25 |
---|---|
[Spring] AOP_2 (0) | 2016.07.20 |
[Spring] DI_1 (0) | 2016.07.16 |
[Spring] AOP_1 (0) | 2016.07.04 |
[Spring]8_4 Skill of Spring (0) | 2016.02.28 |