[JAVA-28963] Migrate spring-mvc-java to Spring Boot 3(#15640)

This commit is contained in:
Harry9656 2024-01-21 21:26:29 +01:00 committed by GitHub
parent 870628f031
commit cc1b43e554
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 70 additions and 72 deletions

View File

@ -10,9 +10,9 @@
<parent> <parent>
<groupId>com.baeldung</groupId> <groupId>com.baeldung</groupId>
<artifactId>parent-boot-2</artifactId> <artifactId>parent-boot-3</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../parent-boot-2</relativePath> <relativePath>../../parent-boot-3</relativePath>
</parent> </parent>
<dependencies> <dependencies>
@ -25,18 +25,19 @@
<artifactId>spring-boot-starter-tomcat</artifactId> <artifactId>spring-boot-starter-tomcat</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.servlet</groupId> <groupId>jakarta.servlet</groupId>
<artifactId>javax.servlet-api</artifactId> <artifactId>jakarta.servlet-api</artifactId>
<version>${javax.version}</version> <version>${jakarta.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.servlet.jsp</groupId> <groupId>jakarta.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId> <artifactId>jakarta.servlet.jsp-api</artifactId>
<version>${javax-servlet-api.version}</version> <version>${jakarta-servlet-api.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.servlet</groupId> <groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jstl</artifactId> <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<version>${jakarta-servlet-jstl-version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.tomcat.embed</groupId> <groupId>org.apache.tomcat.embed</groupId>
@ -50,11 +51,6 @@
<artifactId>commons-io</artifactId> <artifactId>commons-io</artifactId>
<version>${commons-io.version}</version> <version>${commons-io.version}</version>
</dependency> </dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<!-- Thymeleaf --> <!-- Thymeleaf -->
<dependency> <dependency>
<groupId>org.thymeleaf</groupId> <groupId>org.thymeleaf</groupId>
@ -77,6 +73,13 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>${rest.assured.version}</version>
<scope>test</scope>
</dependency>
<!-- Validation --> <!-- Validation -->
<dependency> <dependency>
@ -85,9 +88,10 @@
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.glassfish</groupId> <groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId> <artifactId>jakarta.el</artifactId>
<version>${javax.el.version}</version> <version>${jakarta.el.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
@ -115,12 +119,10 @@
<artifactId>cargo-maven2-plugin</artifactId> <artifactId>cargo-maven2-plugin</artifactId>
<version>${cargo-maven2-plugin.version}</version> <version>${cargo-maven2-plugin.version}</version>
<configuration> <configuration>
<wait>true</wait>
<container> <container>
<containerId>jetty8x</containerId> <containerId>jetty8x</containerId>
<type>embedded</type> <type>embedded</type>
<systemProperties> <systemProperties>
<!-- <provPersistenceTarget>cargo</provPersistenceTarget> -->
</systemProperties> </systemProperties>
</container> </container>
<configuration> <configuration>
@ -167,9 +169,6 @@
<plugin> <plugin>
<groupId>org.codehaus.cargo</groupId> <groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId> <artifactId>cargo-maven2-plugin</artifactId>
<configuration>
<wait>false</wait>
</configuration>
<executions> <executions>
<execution> <execution>
<id>start-server</id> <id>start-server</id>
@ -208,11 +207,13 @@
<maven-resources-plugin.version>3.1.0</maven-resources-plugin.version> <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
<!-- AspectJ --> <!-- AspectJ -->
<aspectj.version>1.9.1</aspectj.version> <aspectj.version>1.9.1</aspectj.version>
<javax.el.version>3.0.1-b09</javax.el.version> <jakarta.el.version>5.0.0-M1</jakarta.el.version>
<javax.version>4.0.1</javax.version> <jakarta.version>6.1.0-M1</jakarta.version>
<javax-servlet-api.version>2.3.3</javax-servlet-api.version> <jakarta-servlet-api.version>4.0.0-M1</jakarta-servlet-api.version>
<json-path.version>2.8.0</json-path.version> <json-path.version>2.8.0</json-path.version>
<start-class>com.baeldung.SpringMVCApplication</start-class> <start-class>com.baeldung.SpringMVCApplication</start-class>
<jakarta-servlet-jstl-version>3.0.0</jakarta-servlet-jstl-version>
<rest.assured.version>5.4.0</rest.assured.version>
</properties> </properties>
</project> </project>

View File

@ -1,12 +1,12 @@
package com.baeldung.filters; package com.baeldung.filters;
import javax.servlet.Filter; import jakarta.servlet.Filter;
import javax.servlet.FilterChain; import jakarta.servlet.FilterChain;
import javax.servlet.FilterConfig; import jakarta.servlet.FilterConfig;
import javax.servlet.ServletException; import jakarta.servlet.ServletException;
import javax.servlet.ServletRequest; import jakarta.servlet.ServletRequest;
import javax.servlet.ServletResponse; import jakarta.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter; import jakarta.servlet.annotation.WebFilter;
import java.io.IOException; import java.io.IOException;
@WebFilter(urlPatterns = "/uppercase") @WebFilter(urlPatterns = "/uppercase")

View File

@ -1,9 +1,9 @@
package com.baeldung.listeners; package com.baeldung.listeners;
import javax.servlet.ServletContext; import jakarta.servlet.ServletContext;
import javax.servlet.ServletContextEvent; import jakarta.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener; import jakarta.servlet.ServletContextListener;
import javax.servlet.annotation.WebListener; import jakarta.servlet.annotation.WebListener;
@WebListener @WebListener
public class AppListener implements ServletContextListener { public class AppListener implements ServletContextListener {

View File

@ -1,10 +1,10 @@
package com.baeldung.listeners; package com.baeldung.listeners;
import javax.servlet.ServletContext; import jakarta.servlet.ServletContext;
import javax.servlet.ServletRequestEvent; import jakarta.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener; import jakarta.servlet.ServletRequestListener;
import javax.servlet.annotation.WebListener; import jakarta.servlet.annotation.WebListener;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
@WebListener @WebListener
public class RequestListener implements ServletRequestListener { public class RequestListener implements ServletRequestListener {

View File

@ -1,9 +1,9 @@
package com.baeldung.servlets; package com.baeldung.servlets;
import javax.servlet.annotation.WebServlet; import jakarta.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;

View File

@ -1,9 +1,9 @@
package com.baeldung.servlets; package com.baeldung.servlets;
import javax.servlet.annotation.WebServlet; import jakarta.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet; import jakarta.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;

View File

@ -1,29 +1,29 @@
package com.baeldung.spring.web.config; package com.baeldung.spring.web.config;
import javax.servlet.MultipartConfigElement;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRegistration;
import org.springframework.web.WebApplicationInitializer; import org.springframework.web.WebApplicationInitializer;
import org.springframework.web.context.support.GenericWebApplicationContext; import org.springframework.web.context.support.GenericWebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet; import org.springframework.web.servlet.DispatcherServlet;
import jakarta.servlet.MultipartConfigElement;
import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletRegistration;
public class MainWebAppInitializer implements WebApplicationInitializer { public class MainWebAppInitializer implements WebApplicationInitializer {
private String TMP_FOLDER = "/tmp"; private static final String TMP_FOLDER = "/tmp";
private int MAX_UPLOAD_SIZE = 5 * 1024 * 1024; private static final int MAX_UPLOAD_SIZE = 5 * 1024 * 1024;
@Override @Override
public void onStartup(ServletContext sc) throws ServletException { public void onStartup(ServletContext sc) {
ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet( ServletRegistration.Dynamic appServlet = sc.addServlet("mvc", new DispatcherServlet(
new GenericWebApplicationContext())); new GenericWebApplicationContext()));
appServlet.setLoadOnStartup(1); appServlet.setLoadOnStartup(1);
MultipartConfigElement multipartConfigElement = new MultipartConfigElement(TMP_FOLDER, MultipartConfigElement multipartConfigElement = new MultipartConfigElement(TMP_FOLDER,
MAX_UPLOAD_SIZE, MAX_UPLOAD_SIZE * 2, MAX_UPLOAD_SIZE / 2); MAX_UPLOAD_SIZE, MAX_UPLOAD_SIZE * 2L, MAX_UPLOAD_SIZE / 2);
appServlet.setMultipartConfig(multipartConfigElement); appServlet.setMultipartConfig(multipartConfigElement);

View File

@ -12,7 +12,7 @@ import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.http.converter.ByteArrayHttpMessageConverter; import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter; import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.multipart.support.StandardServletMultipartResolver;
import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer; import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
@ -113,14 +113,11 @@ public class WebConfig implements WebMvcConfigurer {
public void configurePathMatch(final PathMatchConfigurer configurer) { public void configurePathMatch(final PathMatchConfigurer configurer) {
final UrlPathHelper urlPathHelper = new UrlPathHelper(); final UrlPathHelper urlPathHelper = new UrlPathHelper();
urlPathHelper.setRemoveSemicolonContent(false); urlPathHelper.setRemoveSemicolonContent(false);
configurer.setUrlPathHelper(urlPathHelper); configurer.setUrlPathHelper(urlPathHelper);
} }
@Bean(name = "multipartResolver") @Bean(name = "multipartResolver")
public CommonsMultipartResolver multipartResolver() { public StandardServletMultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(); return new StandardServletMultipartResolver();
multipartResolver.setMaxUploadSize(100000);
return multipartResolver;
} }
} }

View File

@ -3,7 +3,7 @@ package com.baeldung.web.controller;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import javax.servlet.ServletContext; import jakarta.servlet.ServletContext;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;

View File

@ -16,7 +16,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.WebApplicationContext;
import javax.servlet.ServletContext; import jakarta.servlet.ServletContext;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;

View File

@ -1,14 +1,14 @@
package com.baeldung.web.controller; package com.baeldung.web.controller;
import io.restassured.RestAssured;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.web.server.LocalServerPort; import org.springframework.boot.test.web.server.LocalServerPort;
import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.TestPropertySource;
import static io.restassured.RestAssured.given;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
import static io.restassured.RestAssured.given;
import io.restassured.RestAssured;
@SpringBootTest(webEnvironment = RANDOM_PORT) @SpringBootTest(webEnvironment = RANDOM_PORT)
@TestPropertySource(properties = {"spring.main.allow-bean-definition-overriding=true", "server.servlet.context-path=/"}) @TestPropertySource(properties = {"spring.main.allow-bean-definition-overriding=true", "server.servlet.context-path=/"})