해당 포스팅은 스프링 프로젝트 구조를 알고 보면 이해하는데 도움이 된다.
Spring 프로젝트 구조 mvc 프로젝트 폴더 구조, 스프링 동작 순서
Spring framwork를 사용한 mvc 프로젝트를 시작하기 앞서 프로젝트 폴더 구조를 알고 어떤 폴더에 컨트롤러(Controller), 어떤부분에서 모델(model)역할을 하고, 어떤 폴더안에 파일들은 뷰(View) 역할을 하
loginshin.tistory.com
웹 프로젝트를 진행하면 다양한 설정들과 코드, 이미지, 코드 표준, 라이브러리, url, 매핑 등등... 많은 것들을 관리해야 하는데, 공부하며 프로젝트 구조 중 웹 관련 폴더에 있는 스프링 MVC환경 설정 파일들과 웹 프로젝트 환경 설정 파일을 살펴보자
스프링의 환경설정은 XML형식으로 자바 웹 환경 설정을 담당한다.
web.xml
크게
- 각종 표준들을 따르고 틀을 잡기위한 네임 스페이스, 스키마 선언
- 사용자가 직접 제어할 수 있는 스프링 MVC설정 파일을 등록할 수 있고, 파일 정보를 읽을 수 있는 루트콘텍스트
- 서블릿 컨테이너와 통신할 때 사용하는 메서드를 가지고 있는 클래스인 서블릿 콘텍스트
으로 볼 수 있다.
web.xml은 프로젝트가 구동될 때, 처음 접근하는 파일이며 위에 설정들을 정의한다.
root-context / servlet-context
- servlet-context는 View와 관련 있는 bean 객체를 생성해 관리하고
- root-context는 View와 관련 없는 bean 객체를 설정 관리합니다. 저장소, 데이터베이스, 로그, 애플리케이션 비즈니스로직을 관리한다.
servlet-context.xml에서 bean객체를 찾을 수 없을 때 root-context.xml이 대신한다.
즉, root -context는 View와 관련되지 않은 Dao, DB, Service를 선언하는 용도로 사용된다.
중점으로 볼 것은 컨트롤러, URL, 인터셉터 관련 클래스를 설정하는 servlet-context.xml이다.
servlet-context.xml
servlet-contex.xml에서는 View 처리에 대한 설정을 할 수 있고, 웹 요청으로 부터 컨트롤러의 매핑을 설정할 수 있다.
🙌 <annotation-driven />는 어노테이션을 사용할 때 필요한 bean 객체를 자동으로 편리하게 등록한다
🙌 <resources>는 정적 리소스 설정을 할 수 있다. (css, img, js 위치한 폴더, 파일 등록)
🙌 뷰 매핑을 할 수 있다. (컨트롤러 -> 모델반환 -> 디스패처 서블릿 -> jsp 파일 찾기)
🙌 자바 클래스의 빈 객체를 설정한다 (bean 객체를 xml에 등록하지 않아도 필요한 어노테이션을 자동으로 인식할 수 있도록 해준다, 하지 않으면 controller를 전부 하나하나 수동 등록 해줘야 한다)
context:component-scan 요소가 자동으로 인식하는 어노테이션
@Component, @Repository, @Service, @Controller, @Required, @Autowired, @Inject
'Back End > Spring' 카테고리의 다른 글
Spring Boot 프로젝트 생성: Spring Initializer의 활용법 (0) | 2024.01.12 |
---|---|
Spring Boot 스프링 부트 테스트를 위한 주요 어노테이션 활용 방법 @Test @After @Before (2) | 2023.07.21 |
Spring 프로젝트 구조 mvc 프로젝트 폴더 구조, 스프링 동작 순서 (0) | 2023.06.28 |
Spring Java JDK 환경변수 설정시 JAVA_HOME으로 변수를 만드는 이유 (0) | 2023.06.22 |
Spring 스프링 MVC 패턴이란, 모델-뷰-컨트롤러, mvc 구성요소 (0) | 2023.06.22 |