개발군싹

[Spring]Spring이란? 본문

Spring

[Spring]Spring이란?

개발자군싹 2023. 12. 7. 22:15

 Spring이란? 

 Java 플랫폼을 위한 오픈 소스 어플리케이션 프레임워크로 간단하게 '스프링'이라고 한다.

동적인 웹 사이트 개발을 위해 여러가지 서비스를 제공한다.

 

⭐ 특징 ⭐

  1. DI(Dependency Injection) 의존성 주입 : 설정 파일이나 어노테이션을 통해 객체 간의 의존 관계를
    설정하여 개발자가 직접 의존하는 객체를 생성할 필요 없음
  2. Spring AOP(Aspect Oriented Programming) 관점 지향 프로그래밍 : 트랜잭션, 로깅, 보안 등 여러 모듈, 여러 계층에서 공통으로
    필요로 하는 기능의 경우 해당 기능들을 분리하여 관리
  3. POJO(Plain Old Java Object) : 일반적인 J2EE 프레임워크에 비해 특정 라이브러리를 사용
    할 필요가 없어 개발이 쉬우며 기존 라이브러리의 지원 용이
  4. IoC(Inversion of Control) 제어 반전 : 컨트롤의 제어권이 개발자가 아니라 프레임워크에 있다는 뜻으로 객체의 생성부터 모든 생명주기의 관리까지 프레임워크가 주도 객체를 생성하고 직접 호출하는 프로그램이 아니라 만들어둔 자원을 호출하여 사용
  5. Spring JDBC : Mybatis나 Hibernate 등의 데이터베이스를 처리하는 영속성 프레임워크와 연결할 수 있는 인터페이스 제공
  6. Spring MVC : MVC 디자인 패턴을 통해 웹 어플리케이션의 Model, View, Controller 사이의 의존 관계를 DI 컨테이너에서 개발자가 아닌 서버가 객체들을  관리하는 웹 어플리케이션 구축

Spring MVC 구성요소

DispatcherServlet : 클라이언트의 요청을 전달받고 요청에 맞는 컨트롤러가 리턴한 결과 값을 View에 전달하여 알맞은 응답을 생성한다.

HandlerMapping : 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지 결정한다.

Controller : 클라이언트의 요청을 처리한 뒤 결과를 DispatcherServler에게 리턴한다.

ViewResolver : 컨트롤러의 처리 결과를 생성할 View를 결정한다.

View : 컨트롤러의 처리 결과 화면 생성, JSP를 View로 사용한다.


Spring MVC 요청 처리 과정

MVC 요청 처리 과정

  1. 웹 어플리케이션이 실행되면 Tomcat(WAS)에 의해 web.xml이 로드된다.
  2. web.xml에 등록되어있는 ContextLoaderListener(Java Class)가 생성된다. ContextLoaderListener 클래스는 ServletContextListener 인터페이스를 구현하고 있으며 ApplicationContext를 생성하는 역할을 수행한다.
  3. 생성된 ContextLoaderListener는 root-context.xml을 로드한다.
  4. root-context.xml에 등록되어있는 Spring Container가 구동되고 이때, 개발자가 작성한 비지니스 로긱에 대한 부분과 DAO,VO 객체들이 생성한다. ➡️ 의존성주입(DI)에 의해 생성 등록된 객체 (BeanFactory)들이 Spring에 의해 자동 생성
  5. 클라이언트로부터 요청(Request)가 온다.
  6. DispatcherServlet(Servlet)이 생성되고 이 servlet은 FrontController의 역할을 수행한다.
  7. 클라이언트로부터 요청 온 메세지를 분석하여 알맞은 Controller에게 전달하고 응답을 받아 요청에 따른 응답을 어떻게 할지 결정한다. 이러한 응답 결과를 결정할 클래스들을 HandllerMapping, ViewResolver 클래스라고 한다.

Spring Project  구조

  • Spring Project 폴더구조


  • main 폴더


  • Webapp 폴더