본문 바로가기
Programming/Spring

Maven / Spring 기본

by TinKerBellBass 2017. 8. 18.
728x90
반응형

 참고도서

초보 웹 개발자를 위한 스프링4 프로그래밍 입문
국내도서
저자 : 최범균
출판 : 가메출판사 2015.03.02
상세보기

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

댓글