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의 구성요소
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 과정
- 클라이언트(유저)가 url을 요청하면, 웹 브라우저에서 Spring으로 HTTP request가 보내진다.
- Dispatcher Servlet이 request를 받으면, Handler Mapping을 통해 Request를 처리할 Controller를 배정한다.
- 찾은 Controller로 request를 보내주고, 보내주기 위해 필요한 Model를 구성한다.
- Model에서는 페이지 처리에 필요한 정보들을 DB에 접근하여 가져온다.
- Data를 통해 얻은 Model 정보를 Controller에게 response 해주면, Controller는 이를 받아 Model을 완성해 Model과 View를 감싼 ModelandView 객체를 Dispatcher Servlet에게 반환시켜준다.
- Dispatcher Servlet은 View Resolver를 통해 request에 해당하는 view 파일을 가져온다.
- Model Data와 View파일을 Dispatcher Servlet에게 전달한다.
- 완성된 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
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
'Java > Spring' 카테고리의 다른 글
[Spring] Rest vs RestAPI (0) | 2022.11.23 |
---|---|
[Spring] MVC Pattern (2) | 2022.11.23 |
스프링 쇼핑몰 장바구니 기능 테스트코드(Junit5 단위 테스트) (0) | 2022.09.18 |
스프링 쇼핑몰 프로젝트 장바구니(cart) 기능 구현 (0) | 2022.09.14 |
Gradle 환경에서 Swagger 사용 방법(API 문서 자동화) (0) | 2022.08.31 |