Java/Spring

[Spring] Bean Scope, MVC Framework, SpringApplication(Spring Boot)

SeungbeomKim 2022. 10. 27. 02:40
반응형

 

Spring Bean이란?

  • Spring에서 POJO(plain, old java object)를 "Bean"이라고 부른다
  • Beans는 애플리케이션의 핵심을 이루는 객체이며, Spring IoC 컨테이션에 의해 인스턴스화, 관리, 생성 된다.
  • 컨테이너에 공급하는 XML파일에 의해 생성된다.
  • 애플리케이션의 객체가 지정되면 getBean()메서드를 통해 가져올 수 있다.

Bean Scope 

이 중에 request, session, globalsession은 Spring Mvc Web Application에서만 적용된다.

default값은 singleton이다.

 

MVC Framework

 

Spring MVC Framework의 동작과정(출처 : https://kotlinworld.com/326)

Spring MVC Framework의 구성요소

DispatcherServlet : 제일 앞단에서 HTTP Request를 처리하는 Controller

Controller(Handler) : HTTP Request를 처리해 Model을 만들고 View를 지정

Handler Mapping : 클라이언트의 request url을 어떤 컨트롤러가 처리해야 할 지 찾은 후, Dispatcher Servlet에게 전달해주는 역할을 담당한다.(url 매핑 담당 : @RequestMapping 어노테이션 사용)

ModelAndView : Controller에 의해 반환된 Model과 View가 Wrapping된 객체 

===> Map<String, Value> 형태의 Data 저장소(Key-value 쌍으로 구성)

ViewResolver : Controller의 처리 결과를 만들 view를 결정해주는 역할 담당

 

MVC 과정

  1. 클라이언트(유저)가 url을 요청하면, 웹 브라우저에서 Spring으로 HTTP request가 보내진다.
  2. Dispatcher Servlet이 request를 받으면, Handler Mapping을 통해 Request를 처리할 Controller를 배정한다.
  3. 찾은 Controller로 request를 보내주고, 보내주기 위해 필요한 Model를 구성한다.
  4. Model에서는 페이지 처리에 필요한 정보들을 DB에 접근하여 가져온다.
  5. Data를 통해 얻은 Model 정보를 Controller에게 response 해주면, Controller는 이를 받아 Model을 완성해 Model과 View를 감싼 ModelandView 객체를 Dispatcher Servlet에게 반환시켜준다.
  6. Dispatcher Servlet은 View Resolver를 통해 request에 해당하는 view 파일을 가져온다.
  7. Model Data와  View파일을 Dispatcher Servlet에게 전달한다.
  8. 완성된 View를 클라이언트에게 response하여 화면에 출력한다.

SpringApplication 

스프링 부트로 프로젝트를 빌드할 때 다음과 같은 코드로 인해 스프링이 실행될 수 있다.

@SpringBootApplication 어노테이션을 통해 스프링 Bean을 읽어와 자동으로 생성해준다.

반드시 프로젝트의 최상단에 만들어야 한다.

run()함수를 통해 내장 WAS(Web Application Server) 실행한다

(내장 WAS==DB Server)는 Web Server의 기능들을 구조적으로 분리하여 처리하고자하는 목적으로 생겼다.

내장 WAS의 장점은 개발자가 외부 WAS(Tomcat..)를 설치 후 설정하지 않아도 자동으로 애플리케이션을 실행할 수 있다는 장점이 있다.

 

 

<참고 자료>

https://gyoogle.dev/blog/web-knowledge/spring-knowledge/Spring%20MVC.html

 

Spring MVC Framework | 👨🏻‍💻 Tech Interview

Spring MVC Framework 클라이언트가 서버에게 url을 통해 요청할 때 일어나는 스프링 프레임워크의 동작을 그림으로 표현한 것이다. MVC 진행 과정 클라이언트가 url을 요청하면, 웹 브라우저에서 스프

gyoogle.dev

https://kotlinworld.com/326

 

Spring MVC Framework란 무엇인가? Spring MVC의 구조와 의의

Spring MVC란 무엇인가? Spring MVC는 Spring에서 제공하는 웹 모듈로, Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의..

kotlinworld.com

https://gyoogle.dev/blog/web-knowledge/spring-knowledge/%5BSpring%20Boot%5D%20SpringApplication.html

 

[Spring Boot] SpringApplication | 👨🏻‍💻 Tech Interview

[Spring Boot] SpringApplication 스프링 부트로 프로젝트를 실행할 때 Application 클래스를 만든다. 클래스명은 개발자가 프로젝트에 맞게 설정할 수 있지만, 큰 틀은 아래와 같다. @SpringBootApplication 어노테

gyoogle.dev

https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

[Web] Web Server와 WAS의 차이와 웹 서비스 구조 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

반응형