Spring 6 Legacy 환경에서 MultipartResolver 등록하는 법

식빵·2024년 6월 11일
0

spring-legacy-configure

목록 보기
8/9

참고:
Spring Web 6 를 사용하시려면 Tomcat 버전이 10 이어야 합니다.
그래서 아래 web.xml 의 web-app 태그 속성도 그에 맞게 작성된 예시입니다.

🍀 Mutlipart Configuration

방법 1 : web.xml 작성

<?xml version="1.0" encoding="UTF-8"?>
<web-app
        xmlns = "https://jakarta.ee/xml/ns/jakartaee"
        xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation = "https://jakarta.ee/xml/ns/jakartaee
                              https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd"
        version = "6.0"
        metadata-complete = "false">
  
  	<!-- 중간내용 생략 -->
  
	<servlet>
        <servlet-name>dispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/web/config/**/*.xml</param-value>
        </init-param>
        
        <!-- 이걸 꼭 하셔야 됩니다. -->
        <multipart-config>
            <max-file-size>10485760</max-file-size>
            <max-request-size>20971520</max-request-size>
            <file-size-threshold>5242880</file-size-threshold>
        </multipart-config>
    </servlet>
  
	<servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

방법 2: Java 설정

Java 로 web.xml 설정을 대체하신 분들은 아래처럼...

 public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
   // ...
   @Override
   protected void customizeRegistration(ServletRegistration.Dynamic registration) {
     // Optionally also set maxFileSize, maxRequestSize, fileSizeThreshold
     registration.setMultipartConfig(new MultipartConfigElement("/tmp"));
   }
 }



🍀 MultipartResolver 빈 등록

Mutlipart Configuration 을 끝내셨으면 이제 해당 설정을 읽고,
Multpart 요청을 처리해줄 MultipartResolver 을 빈으로 등록해야 됩니다.

DispatcherServlet 이 인식할 수 있는 spring 설정 XML 파일에 아래와 같이 StandardServletMultipartResolver 를 빈으로 등록합니다.

<bean id="multipartResolver"
      class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
</bean>

끝입니다.

profile
백엔드를 계속 배우고 있는 개발자입니다 😊

0개의 댓글