diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml
index cb16e91bc4..ea0acdcb00 100644
--- a/spring-mvc-java/pom.xml
+++ b/spring-mvc-java/pom.xml
@@ -8,17 +8,20 @@
war
- parent-spring-5
+ parent-boot-2
com.baeldung
0.0.1-SNAPSHOT
- ../parent-spring-5
+ ../parent-boot-2
- org.springframework
- spring-webmvc
- ${spring.version}
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
javax.servlet
@@ -33,7 +36,11 @@
javax.servlet
jstl
- ${jstl.version}
+
+
+ org.apache.tomcat.embed
+ tomcat-embed-jasper
+ provided
@@ -55,17 +62,6 @@
-
- commons-fileupload
- commons-fileupload
- ${commons-fileupload.version}
-
-
- commons-io
- commons-io
-
-
-
net.sourceforge.htmlunit
htmlunit
@@ -106,9 +102,8 @@
2.4.0
- org.springframework
- spring-test
- ${spring.version}
+ org.springframework.boot
+ spring-boot-starter-test
test
@@ -134,15 +129,8 @@
2.8.5
- org.springframework
- spring-websocket
- ${spring.version}
-
-
-
- org.springframework
- spring-messaging
- ${spring.version}
+ org.springframework.boot
+ spring-boot-starter-websocket
org.glassfish
@@ -296,6 +284,7 @@
3.16-beta1
3.0.1-b09
+ com.baeldung.SpringMVCApplication
diff --git a/spring-mvc-java/src/main/java/com/baeldung/SpringMVCApplication.java b/spring-mvc-java/src/main/java/com/baeldung/SpringMVCApplication.java
new file mode 100644
index 0000000000..a456dc125e
--- /dev/null
+++ b/spring-mvc-java/src/main/java/com/baeldung/SpringMVCApplication.java
@@ -0,0 +1,12 @@
+package com.baeldung;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
+
+@SpringBootApplication
+public class SpringMVCApplication extends SpringBootServletInitializer {
+ public static void main(String[] args) {
+ SpringApplication.run(SpringMVCApplication.class, args);
+ }
+}
\ No newline at end of file
diff --git a/spring-mvc-java/src/main/java/com/baeldung/aop/LoggingAspect.java b/spring-mvc-java/src/main/java/com/baeldung/aop/LoggingAspect.java
index 7ae37404be..169d664471 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/aop/LoggingAspect.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/aop/LoggingAspect.java
@@ -23,15 +23,15 @@ public class LoggingAspect {
}
};
- @Pointcut("@target(org.springframework.stereotype.Repository)")
+ @Pointcut("within(com.baeldung..*) && execution(* com.baeldung.dao.FooDao.*(..))")
public void repositoryMethods() {
}
- @Pointcut("@annotation(com.baeldung.aop.annotations.Loggable)")
+ @Pointcut("within(com.baeldung..*) && @annotation(com.baeldung.aop.annotations.Loggable)")
public void loggableMethods() {
}
- @Pointcut("@args(com.baeldung.aop.annotations.Entity)")
+ @Pointcut("within(com.baeldung..*) && @args(com.baeldung.aop.annotations.Entity)")
public void methodsAcceptingEntities() {
}
diff --git a/spring-mvc-java/src/main/java/com/baeldung/aop/PerformanceAspect.java b/spring-mvc-java/src/main/java/com/baeldung/aop/PerformanceAspect.java
index 1f2076adff..8f374cc1e5 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/aop/PerformanceAspect.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/aop/PerformanceAspect.java
@@ -15,7 +15,7 @@ public class PerformanceAspect {
private static Logger logger = Logger.getLogger(PerformanceAspect.class.getName());
- @Pointcut("within(@org.springframework.stereotype.Repository *)")
+ @Pointcut("within(com.baeldung..*) && execution(* com.baeldung.dao.FooDao.*(..))")
public void repositoryClassMethods() {
}
diff --git a/spring-mvc-java/src/main/java/com/baeldung/aop/PublishingAspect.java b/spring-mvc-java/src/main/java/com/baeldung/aop/PublishingAspect.java
index 7791c63e7b..a45402dc18 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/aop/PublishingAspect.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/aop/PublishingAspect.java
@@ -20,11 +20,11 @@ public class PublishingAspect {
this.eventPublisher = eventPublisher;
}
- @Pointcut("@target(org.springframework.stereotype.Repository)")
+ @Pointcut("within(com.baeldung..*) && execution(* com.baeldung.dao.FooDao.*(..))")
public void repositoryMethods() {
}
- @Pointcut("execution(* *..create*(Long,..))")
+ @Pointcut("within(com.baeldung..*) && execution(* com.baeldung.dao.FooDao.create*(Long,..))")
public void firstLongParamMethods() {
}
diff --git a/spring-mvc-java/src/main/java/com/baeldung/config/AppInitializer.java b/spring-mvc-java/src/main/java/com/baeldung/config/AppInitializer.java
deleted file mode 100644
index eec12f466f..0000000000
--- a/spring-mvc-java/src/main/java/com/baeldung/config/AppInitializer.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.baeldung.config;
-
-import org.springframework.web.WebApplicationInitializer;
-import org.springframework.web.context.ContextLoaderListener;
-import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
-import org.springframework.web.servlet.DispatcherServlet;
-
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRegistration;
-
-public class AppInitializer implements WebApplicationInitializer {
-
- @Override
- public void onStartup(ServletContext container) throws ServletException {
- AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
-
- context.scan("com.baeldung");
-
- container.addListener(new ContextLoaderListener(context));
-
- ServletRegistration.Dynamic dispatcher = container.addServlet("mvc", new DispatcherServlet(context));
- dispatcher.setLoadOnStartup(1);
- dispatcher.addMapping("/");
-
- // final MultipartConfigElement multipartConfigElement = new
- // MultipartConfigElement(TMP_FOLDER, MAX_UPLOAD_SIZE,
- // MAX_UPLOAD_SIZE * 2, MAX_UPLOAD_SIZE / 2);
- //
- // appServlet.setMultipartConfig(multipartConfigElement);
- }
-
-}
diff --git a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java
index 44fef92917..96e300464b 100644
--- a/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java
+++ b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java
@@ -3,9 +3,6 @@ package com.baeldung.spring.web.config;
import java.util.ArrayList;
import java.util.List;
-import javax.servlet.ServletContext;
-
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
@@ -15,7 +12,6 @@ import org.springframework.context.support.ResourceBundleMessageSource;
import org.springframework.http.MediaType;
import org.springframework.http.converter.ByteArrayHttpMessageConverter;
import org.springframework.http.converter.HttpMessageConverter;
-import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.PathMatchConfigurer;
@@ -26,8 +22,9 @@ import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;
import org.springframework.web.util.UrlPathHelper;
import org.thymeleaf.spring4.SpringTemplateEngine;
+import org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
-import org.thymeleaf.templateresolver.ServletContextTemplateResolver;
+import org.thymeleaf.templateresolver.ITemplateResolver;
import com.baeldung.excel.ExcelPOIHelper;
@@ -35,9 +32,6 @@ import com.baeldung.excel.ExcelPOIHelper;
@Configuration
@ComponentScan(basePackages = { "com.baeldung.web.controller" })
public class WebConfig implements WebMvcConfigurer {
-
- @Autowired
- private ServletContext ctx;
@Override
public void addViewControllers(final ViewControllerRegistry registry) {
@@ -64,11 +58,11 @@ public class WebConfig implements WebMvcConfigurer {
@Bean
@Description("Thymeleaf template resolver serving HTML 5")
- public ServletContextTemplateResolver templateResolver() {
- final ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(ctx);
+ public ITemplateResolver templateResolver() {
+ final SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setPrefix("/WEB-INF/templates/");
templateResolver.setSuffix(".html");
- templateResolver.setTemplateMode("HTML5");
+ templateResolver.setTemplateMode("HTML");
return templateResolver;
}
@@ -92,15 +86,6 @@ public class WebConfig implements WebMvcConfigurer {
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
}
-
- @Bean(name = "multipartResolver")
- public CommonsMultipartResolver multipartResolver() {
-
- final CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
- multipartResolver.setMaxUploadSize(100000);
-
- return multipartResolver;
- }
@Override
public void extendMessageConverters(final List> converters) {
diff --git a/spring-mvc-java/src/main/resources/application.properties b/spring-mvc-java/src/main/resources/application.properties
new file mode 100644
index 0000000000..00c491c271
--- /dev/null
+++ b/spring-mvc-java/src/main/resources/application.properties
@@ -0,0 +1,5 @@
+server.servlet.context-path=/spring-mvc-java
+spring.servlet.multipart.max-file-size=1MB
+spring.servlet.multipart.max-request-size=1MB
+spring.servlet.multipart.enabled=true
+spring.servlet.multipart.location=${java.io.tmpdir}
\ No newline at end of file
diff --git a/spring-mvc-java/src/test/java/com/baeldung/SpringContextIntegrationTest.java b/spring-mvc-java/src/test/java/com/baeldung/SpringContextIntegrationTest.java
index 4c06917325..ae91d4dc1e 100644
--- a/spring-mvc-java/src/test/java/com/baeldung/SpringContextIntegrationTest.java
+++ b/spring-mvc-java/src/test/java/com/baeldung/SpringContextIntegrationTest.java
@@ -3,15 +3,12 @@ package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
-import com.baeldung.config.AppInitializer;
+import com.baeldung.config.TestConfig;
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { AppInitializer.class }, loader = AnnotationConfigContextLoader.class)
-@WebAppConfiguration
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {TestConfig.class})
public class SpringContextIntegrationTest {
@Test
diff --git a/spring-mvc-java/src/test/java/com/baeldung/SpringContextTest.java b/spring-mvc-java/src/test/java/com/baeldung/SpringContextTest.java
index 9777addb61..8943ecb548 100644
--- a/spring-mvc-java/src/test/java/com/baeldung/SpringContextTest.java
+++ b/spring-mvc-java/src/test/java/com/baeldung/SpringContextTest.java
@@ -3,15 +3,12 @@ package com.baeldung;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import org.springframework.test.context.support.AnnotationConfigContextLoader;
-import org.springframework.test.context.web.WebAppConfiguration;
+import org.springframework.test.context.junit4.SpringRunner;
-import com.baeldung.config.AppInitializer;
+import com.baeldung.config.TestConfig;
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { AppInitializer.class }, loader = AnnotationConfigContextLoader.class)
-@WebAppConfiguration
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {TestConfig.class})
public class SpringContextTest {
@Test