#스프링의 개념

서비스 지향적인 프레임워크로 하나의 완성된 컴포넌트를 여러 서비스 클래스들을 조합하여 작업을 쉽게 하고 의존도가 낮은 코드를 만드는 프레임워크


#스프링의 특징

경량 컨테이너(집합소)
자바 객체를 담고 있는 컨테이너
생성, 소멸과 같은 라이프 사이클 관리
객체를 가져와 사용가능
인터페이스를 사용하여 의존관계 약화
DI(Dependency Injection : 의존관계)지원
AOP(Aspect Oriented Programming : 관점지향)지원
MVC 지원
POJO(Plain Old Java : JDK만 있으면 다른 컨테이너를 필요치 않음)지원


#DI 패턴이란

객체 간의 의존 관계를 객체 자신이 아닌 외부의 조립기(Assembler)가 수행


#의존방법 명시 하는 세가지 방법 정리

1. 생성자를 통한 초기화

-스프링에서의 객체생성은 bean
-스프링의 객체는 무조건 싱글톤(객체 하나 이상 생성 안함)

<bean id="userImpl" class="di.demo1.UserImpl"> // id 는 객체명
 <constructor-arg value="30" /> // constructor : 생성자
 <constructor-arg value="+" />
 <constructor-arg value="15" />
</bean>

<bean id="userService1" class="di.demo1.UserService">
 <constructor-arg>
  <ref bean="userImpl"/> // ref : reference 객체
 </constructor-arg>
</bean>

-객체 생성 및 의존관계 설정 다른 쉬운 방법
<bean id="userService1" class="di.demo1.UserService">
 <constructor-arg ref="userImpl"/>
</bean>
 
2. 프로퍼티를 통한 객체생성

-setter 필요
-인자가 없는 생성자(default)를 부름
-인자가 없는 생성자가 없으면 오류 

<bean id="userImpl" class="di.demo1.UserImpl">
 <property name="num1" value="15" />
 <property name="num2" value="20" />
 <property name="oper" value="*" />
</bean>

<bean id="userService1" class="di.demo1.UserService">
 <property name="user" ref="userImpl" />
 <property name="user">
  <ref bean="userImpl"/>
 </property>
</bean>

3. XML 네임스페이스

-setter 필요

<bean id="userImpl" class="di.demo1.UserImpl"
 p:num1="15"
 p:num2="7"
 p:oper="/"/> 

<bean id="userService1" class="di.demo1.UserService"
  p:user-ref="userImpl"/>

'Framework' 카테고리의 다른 글

스프링 / DI패턴 / 의존관계  (0) 2012.01.04
간단 용어 정리.. Java 2011. 12. 19. 19:32

1. 인터페이스와 추상클래스

- 인터페이스
객체생성x
추상 메소드 만을 가짐 : 선언o 정의x
다중상속 지원(,구분)
개발시간 단축, 표준화 가능, 관계 없는 클래스들의 중개, 독립적 프로그래밍

- 추상클래스
객체생성x
구현된 메소드와 멤버변수 : 선언o 정의x
클래스와 메소드에서만 사용 가능
추상 클래스를 상속 받은 하위 클래스는 추상 메소드를 오버라이딩


2. MVC1 / MVC2

MVC : Graphical User Interface를 사용할 때, Model 계층과 View 계층 사이에 Control 계층을 만들어서 사용하는 것

- MVC1
개발시간 단축되나 html, javascript, jsp 로직이 한페이지에 쓰여 유지보수 어려움
디자이너와 개발자간의 충돌 야기

- MVC2
로직과 프리젠테이션의 분리로 유지보수와 확장 용이, 디자이너와 개발자간의 책임소재 명확
MVC구조에 대한 개발자의 이해 필요, 개발기간 증가


3. 프레임워크

어플리케이션 작성을 위한 '틀'
재사용 가능, 유지보수 용이한 프로그램 제작,
하위클래스/어플리케이션에 의해 직접 호출되어 상호 작용하는 클래스들의 집합


4. request / response

- request : 클라이언트의 요청 Parameter 읽어오기

- response : 응답 결과 클라이언트에게 전송하기


5. 서블릿의 라이프 사이클

- init() : 로딩(객체생성)시 단 한번 호출

- service() : 요청시마다 반복적으로 호출

- destroy() : 더이상 서비스를 하지 않을 때 메모리에서 제거(GC)



6. JDK 1.4, 5.0, 6.0의 차이점

- 향상된 for() 문 : 기존의 for문에서 for(String str : data) 식의 형식 가능

- Generics 기능 추가 : 컬렉션클래스에 형을 지정함으로 실행시 캐스팅 불필요

- AutoBoxing : 기본자료형(int, double..)에서 그 기본형의 랩퍼 클래스로의 변환 용이



7. Set, Map, List에 대하여 설명

- Set 인터페이스 : 중복이 없는 집합 객체 (Collection)

- List 인터페이스
순서가 있는 집합 객체, 중복허용, 상송받는 클래스중 가장 많이 사용하는 것은 Vector (Collection)

- Map 인터페이스 : 중복이 없는 하나의 키값에 대응하는 하나의 값을 갖는 자료구조


'Java' 카테고리의 다른 글

간단 용어 정리..  (0) 2011.12.19
문제...자바..  (0) 2011.11.06
Java_09  (0) 2011.11.03
Java_08  (0) 2011.11.02
Java_07  (0) 2011.11.01
Java_06  (0) 2011.10.31