Spring MVC

[#2] Spring 기초

k9e4h 2016. 3. 22. 15:55

 

< Framework >

 

  특정 형태의 소프트웨어 문제를 해결하기 위해, 상호 협력하는 클래스들과 인터페이스의 집합

  장점 : 재사용성, 단순성, 역할구분, 확장성, 유지보수 용이 

  라이브러리와 프레임워크의 차이

       라이브러리는 어플리케이션에서 호출할 수 있는 함수와 루틴으로 구성되어 있음

       프레임워크는 어플리케이션에서 특정 기능들을 제공하기 위해 확장할 수 있는 일반적이고

        상호 협력적인 컴포넌트를 제공

 

 

< Spring Framework >

 

 

 

 

 

 

 

 

 

 

 

 

< IOC >

 

Inversion of Control(IoC) container
객체의 생성 , 객체가 참조하고 있는 객체에 대한 종속성을 소스코드 내부에서 하드 코딩하는 것이 아닌, 소스 코드 외부에서 설정하게 함으로써, 유연성 확장성을 향상시킨다.

기본적인 완제품 제작 순서와는 다르게 작은 부품부터 부품으로, 제품을 만드는 순서가 역순
이러한
일련의 작업을 스프링은 컨테이너라는 곳에 담아서 처리하기 때문에 스프링을 IoC Container라고
Inversion of control //
역제어
기존
자바 기반으로 어플리케이션을 개발할때 자바 객체를 생성하고 서로간의 의존관계를 연결시키는 작업에 대한 제어권은 보통 개발되는 어플리케이션에 있었다.
그러나 servlet, EJB등을 사용하는 경우 servlet container, EJB container에게 제어권이 넘어가서 객체의 생명주기를 container들이 전담하게된다.
이처럼 IoC에서 이야기하는 제어권의 역전이란 객체의 생성에서붕터 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을

의미

 

 


IoC 구현 방법 => DL( dependency lookup) 종류로 EJB&Apach, DI(dependency injection) 종류로 Spring

  1. Dependency Injection // 지원하는 것이 Spring
    컨테이너가 클래스 사이에 있는 의존관계를 자동으로 연결해 주는
    bean 설정 정보를 바탕으로
    개발자들이
    container API 이용하여 의존관계에 관여할 필요가 없게 되므로 컨테이너 API 종속되는 것을 줄일 있다.
    개발자들은 단지 설정파일에서 의존관계가필요하다는 정보를 추가하면 된다

     

Bean 각의 의존관계 설정을 xml 파일에 등록

 

- 프로그램코드에서는 직접 빈을 획득하기 위한코드를 사용할 필요가 없음

 

- Container가 자체적으로 필요한 객체를 넘겨줘서 사용하는 방식

 

1) Setter Injection ( 세터 주입)
B b = new B();
A a= new A();
a.setB(b);

2)Construction Injection (
생성자 주입)
B b= new B();
A a= enw A(b);

  1.  

Spring 프레임워크 기반 하에 서 관리되고 있는 UserService 인스턴스를 WebApplicationContext 에서  Lookup 하고 있다는 걸 확인할수 있다 이렇게 생성된 UserService 인스턴스는 JSP에 전달되어 직접적으로 사용된다.

이와 같이 저장소에 의하여 관리 되고 있는 빈을 개발자들이 직접  Lookup하여 사용하는 것을 Dependency Lookup이라고 한다.

 

Dependency Injection 이와 달리 각 계층 사이 , 각 클래스 사이에 필요로 하는 의존관계가 있다면 이와 같은 의존관계를 컨테이너가 자동적으로 연결해주는 것을 말한다.

 

https://velog.io/@yeun/Spring-%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%ACSpring-Framework

 

[Spring] 스프링 프레임워크(Spring Framework)

프레임워크란? 말 그대로 뼈대나 근간을 이루는 코드들의 묶음을 정의 프레임워크의 최대 장점은 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에 실력이 부족한 개발자들도 반쯤 완성

velog.io

 

반응형

'Spring MVC' 카테고리의 다른 글

Spring Batch  (0) 2019.01.18
Spring Transaction 관련  (0) 2016.11.30
Spring Annotation 정리  (0) 2016.10.07
[#1] spring 개요  (0) 2016.05.03
SpringMVC 분석  (0) 2016.04.28