반응형
여승철
INTP 개발자
여승철
  • 분류 전체보기 (376)
    • CS (16)
      • 면접 준비 (7)
      • 운영체제 (0)
      • 네트워크 (2)
      • HTTP (6)
      • 스프링(Spring) IoC 컨테이너 (0)
      • 알고리즘 (1)
    • Web (13)
    • AWS (6)
    • Java (43)
    • JSP & Servlet (65)
      • 개념 (42)
      • 실습 (23)
    • Spring Framework (33)
    • Spring Boot (10)
    • Spring Data (22)
      • JPA (14)
      • Query DSL (7)
      • Redis (1)
    • Spring Security (9)
    • Spring Batch (4)
    • MyBatis (10)
    • Front-End (51)
      • JS (27)
      • Vue.js (17)
      • React (5)
      • JQuery (0)
      • d3.js (2)
    • DBMS (24)
      • SQL, RDBMS (16)
      • MongoDB (5)
      • Redis (3)
    • Kafka (3)
    • 리눅스 (Linux) (4)
    • 디자인 패턴 (3)
    • VCS (8)
    • API (0)
    • TOOL (3)
    • Reading Book (28)
      • 이펙티브 자바 (11)
      • Clean Code (10)
      • 1분 설명력 (4)
      • HOW TO 맥킨지 문제해결의 기술 (3)
    • C# (4)
    • NSIS (6)
    • ETC (11)

블로그 메뉴

  • 홈
  • 태그

인기 글

태그

  • 게시판
  • controller
  • 이펙티브 자바
  • 맥킨지
  • querydsl
  • jsp
  • Spring Batch
  • 회원 관리
  • HTTP
  • EC2
  • 디자인 패턴
  • ubuntu
  • JDBC
  • 로그인
  • Dao
  • 스트림
  • servlet
  • 환경 세팅
  • JSTL
  • mybatis

최근 댓글

최근 글

hELLO· Designed By 정상우.
여승철

INTP 개발자

Spring web.xml, root-context.xml, servlet-context.xml
Spring Framework

Spring web.xml, root-context.xml, servlet-context.xml

2023. 5. 23. 12:09
반응형

web.xml은 웹 애플리케이션의 배포 설명자 파일로, 웹 어플리케이션의 구성과 설정을 정의하는 XML 파일입니다.

root-context.xml과 servlet-context.xml은 web.xml에서 로드되는 Spring 구성 파일입니다.

root-context.xml은 전역적인 빈을 servlet-context.xml은 웹 계층과 관련된 빈을 설정합니다.

이를 통해 Spring 웹 애플리케이션의 구성과 설정을 모듈화하고 관리할 수 있습니다.

 


web.xml

  • Java 웹 애플리케이션의 배포 설명자 파일(Deployment Descriptor)로, 웹 애플리케이션의 구성과 설정을 정의하는 XML 파일입니다. 즉 설정을 위한 설정 파일입니다.
  • 처음 WAS가 구동될 때 각종 설정을 정의해줍니다.
  • root-context.xml과 servlet-context.xml 파일을 로드하기 위한 경로를 설정합니다.

 

주요 요소 및 기능

  • 웹 어플리케이션 이름 설정
    • `<display-name>` 요소를 통해 웹 어플리케이션 이름을 설정
  • 컨텍스트 파라미터
    • `<context-param>`요소를 통해 Spring 설정 파일의 위치를 지정할 수 있습니다.
  • 리스너 설정
    • `<listener>` 요소를 통해 웹 어플리케이션 이벤트를 처리하는 리스너를 등록할 수 있습니다. Spring Framework에서는 주로 `ContextLoaderListener`를 등록하여 Spring 컨텍스트를 로드하고 관리합니다.
  • 필터 설정
    • `<filter>`요소를 통해 인코딩 필터, 보안 필터 등을 등록하여 웹 어플리케이션의 요청을 전처리하거나 후처리할 수 있습니다.
  • 서블릿 설정
    • `<servlet>` 요소를 통해 서블릿을 정의하고 매핑합니다. 여기서 `DispatcherServlet`을 등록하고 매핑할 수 있습니다.
    • `<servlet-class>` 요소를 통해 서블릿 클래스의 패키지 경로를 지정할 수 있습니다.
    • `<init-param>` 요소를 통해 서블릿 초기화 매개변수를 설정할 수 있습니다.
  • 서블릿 매핑
    • `<servlet-mapping>` 요소를 통해 서블릿과 URL 패턴 간의 매핑을 정의합니다.
  • 에러 페이지 설정
    • `<error-page>` 요소를 통해 HTTP 오류 코드 또는 에러 페이지를 등록할 수 있습니다.

 


root-context.xml

  • root-context.xml은 Spring 웹 애플리케이션의 루트 컨텍스트를 구성하는 데 사용되는 XML 파일입니다.
  • 주로 애플리케이션 전반에 걸쳐 사용되는 빈(Bean)과 설정을 정의(모든 컨텍스트에서 사용 가능)합니다.
  • 데이터베이스 연결, 서비스 빈, 데이터 액세스 객체(DAO) 등과 같은 공통적인 빈을 등록합니다.
  • 비즈니스 로직과 서비스 계층의 빈을 정의하고 관리합니다.
  • `root-context.xml`은 `web.xml`의 `ContextLoaderListener`에 의해 로드되고, 전역적으로 사용되는 빈들을 설정합니다. 이로인해 웹 어플리케이션에서 다른 구성 파일들과 공유되는 빈들을 관리할 수 있습니다.

 


servlet-context.xml

  • servlet-context.xml은 Spring 웹 애플리케이션의 서블릿 컨텍스트를 구성하는 데 사용되는 XML 파일입니다.
  • 주로 Spring Framework에서 웹 계층과 관련된 빈과 설정을 정의합니다.
  • 컨트롤러, 뷰 리졸버, 핸들러 매핑, 인터셉터 등과 같은 Spring MVC의 구성 요소를 설정합니다.
  • 웹 애플리케이션의 기능과 특정한 요구사항을 처리하기 위한 빈을 등록합니다.
  • servlet-context.xml은 DispatcherServlet에 의해 로드되고, 해당 서블릿에 대한 설정과 관련된 빈들을 설정합니다.

 

주요 요소 및 기능

 

  • 빈(Bean) 설정
    • `<beans>` 요소 안에 작성함으로 모든 빈 설정을 정의합니다. `<beans>` 요소는 `xmlns`속성을 사용하여 Spring 네임스페이스를 선언합니다.
    • `<bean>` 요소는 빈을 정의하는데 사용되며, 각 빈은 `id`라는 고유한 식별자를 가집니다. 이때 `class` 속성은 빈으로 사용될 클래스의 전체 이름을 지정합니다.
    • `<property>` 요소는 `<bean>` 요소 내에서 속성을 사용하여 빈의 프로퍼티를 설정할 수 있습니다. 이때 `name`은 프로퍼티의 이름, `value`는 프로퍼티의 값을 지정하고, `ref`를 사용하여 다른 빈을 참조할 수 있습니다. (의존성 주입)
    • `<consturctor-arg>` 요소를 사용하여 생성자 인자를 지정할 수 있습니다. `value`를 사용하여 인자의 값을 지정하거나, `ref` 속성을 사용하여 다른 빈을 참조할 수 있습니다. (의존성 주입)
  • 컴포넌트 스캔
    • `<context:component-scan base-package="com.example" />`요소를사용하여컴포넌트스캔을설정할수있습니다.
  • `<mvc:annotation-driven>`
    • 어노테이션 기반의 웹 요청 처리를 활성화하는 설정 요소입니다.
    • 요청 매핑과 핸들러 어댑터 설정: 알맞은 컨트롤러 메서드가 실행되도록
    • 데이터 바인딩 및 검증: 요청 파라미터를 컨트롤러의 메서드  파라미터에 자동으로 바인딩, 어노테이션 기반의 검증 어노테이션인 @Valid, @NotBlank 등을 사용하여 요청 데이터의 유효성을 검증
    • 포맷터와 컨버터 설정: 날짜, Enum 등과 같은 데이터 형식에 대한 포맷터와 컨버터를 자동으로 등록합니다.
    • HTTP 메서드 지원, 요청 매개변수 처리, 세션 상태 저장 등을 자동으로 처리 설정
  • `<mvc:resources>`
    • 정적 리소스 핸들러를 설정하는데 사용합니다.
    • `location` 속성을 통해 리소스의 실제 위치를 지정하고 `mapping` 속성으로 요청 경로를 지정하여 매핑합니다.
  • `<mvc:interceptors>`
    • 인터셉터(요청 처리 전후에 실행되어 특정 작업을 수행하거나 요청을 가로채는데 사용)를 설정하는데 사용
  • `<util:properties>`
    • Spring Framework에서 제공하는 설정 요소로, 속성 파일의 내용을 업로드 하여 Spring Bean으로 사용하도록 해줍니다. 구성 정보나 환경 변수등의 값을 관리하기 위해 사용됩니다.
<util:properties id="demoProperties" location="classpath:demo.properties" />

<bean ...>
	...
	<property name="demoPassword" value="#{demoProperties['db.password']}" />
</bean>

 

반응형

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

Spring WebClient를 활용하여 HTTP 요청 처리하기  (0) 2023.07.27
Spring @RequestParam/@PathVariable/@RequestBody/@RequestHeader/@CookieValue  (0) 2023.05.25
Spring @ControllAdvice와 @ExceptionHandler로 전역 예외처리 하기  (0) 2022.10.25
로그인 처리를 위한 UserDetailsService  (0) 2022.10.14
Spring Thymeleaf 살펴보기  (0) 2022.10.06
    여승철
    여승철

    티스토리툴바