728x90
반응형
참고도서
|
1. 메이븐 의존 설정
프로젝트의 루트 폴더에 위치하는 pom.xml 에 메이븐 설정 정보 저장
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.3.10.RELEASE</version> </dependency> <!-- 메이븐은 한 개의 모듈을 아티팩트 단위로 관리 아티팩트의 완전한 이름은 아티팩트이름-버전.jar 의존 설정이 되면 메이븐 리포지토리의 [그룹ID]\[아티팩트ID]\버전 폴더 안의 아티팩트ID-버전.jar 파일을 다운로드 해서 주입 (org.springframework\spring-context\4.3.10.RELEASE\spring-cotext-4.3.10.RELEASE.jar) 다운로드 경로 [사용자홈폴더]\.m2\repository\org\springframework\spring-context\4.3.10.RELEASE\spring-cotext-4.3.10.RELEASE.jar --> | cs |
이클립스에서 다운로드 경로는 변경할 수 있으나 특별한 일이 아니라면 그냥 쓰면 된다.
하나의 의존 설정을 해서 모듈을 받아 올 때, 그 모듈이 의존하고 있는 모듈도 같이 받아오는데,
이것을 의존의 전이라고 한다.
2. 스프링 빈 설정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <bean id="greeter" class="chap02.Greeter"> <property name="format" value="%s, 안녕하세요"/> </bean> <!-- bean 엘리먼트의 의미 id 의 이름으로 chap02 패키지의 Greeter 객체를 생성 자바코드로 나타내면 Greeter greeter = new Greeter(); property 엘리먼트의 의미 name 이름을 가지는 변수(format)의 setter(setFormat())에 값을 주입 자바코드로 나타내면 greeter.setFormat("%s, 안녕하세요"); property 엘리먼트를 사용하기 위해서는 반드시 setter --> | cs |
3. 스프링 컨테이너
스프링은 객체를 생성해서 주입해 주는 객체 컨테이너이다.
스프링 객체 컨테이너는 XML 설정 파일을 읽은 후, 자바의 리플렉션(Reflection) 기능을 이용해서 객체를 생성한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class Main{ public static void main(String[] args){ // GenericXmlApplicationContext 클래스(컨테이너)는 // applicationContext.xml 설정파일을 읽어와 빈 객체를 생성하고 관리 GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationContext.xml"); // applicationContext.xml 에 greeter 라는 id 로 등록된 Greeter 클래스 객체 생성 Greeter g = ctx.getBean("greeter", Greeter.class); // 사용을 마치면 스프링 컨테이너를 닫아준다. 메모리에 생성된 빈 객체 제거 ctx.close(); } } | cs |
스프링 컨테이너의 주요 계층도
BeanFactory interface |
객체 생성과 검색에 대한 기능 정의, getBean( ) 메소드가 여기 정의되어 있음 |
ApplicationContext interface |
메시지, 이벤트, 프로필/환경변수 등을 처리할 수 있는 기능이 추가로 정의되어 있음 |
GenericXmlApplicationContext class |
XML 에서 객체 설정 정보를 가져옴 |
AnnotationConfigApplicationContext class |
자바 어노테이션을 이용한 클래스로부터 객체 설정 정보를 가져옴 |
GenericGrooyApplicationContext |
그루비 코드를 이용해 설정 정보를 가져옴 |
스프링 컨테이너는 별도의 설정을 하지 않을 경우,
하나의 빈 설정당 한 개의 빈 객체만을 생성하기 때문에 싱글톤의 범위를 갖는다.
1 2 3 4 5 6 7 | <!-- Greeter 클래스로부터 싱글톤 범위의 greeter 객체 하나 생성 --> <!-- 구현 클래스에서 아무리 greeter 빈 객체를 생성해도 다 같은 객체 --> <bean id="greeter" class="chap02.Greeter"/> <!-- Greeter 클래스로부터 싱글톤 범위의 geeter2 객체 하나 생성 --> <!-- greeter 객체와 greeter2 객체는 다른 객체 --> <bean id="greeter2" class="chap02.Greeter"/> | cs |
728x90
반응형
'Programming > Spring' 카테고리의 다른 글
의존 자동 주입 (0) | 2017.08.18 |
---|---|
Spring DI (0) | 2017.08.18 |
JPA 스프링 연동 (0) | 2017.08.14 |
JPA (Java Persistence API) 기본 개념 (2) | 2017.08.13 |
Mybatis (0) | 2017.08.13 |
댓글