From 4f77aa59cd6acbf3c82f771d73d4c96165f542e3 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 28 Jul 2019 10:50:15 +0530 Subject: [PATCH 1/4] [BAEL-15393] - Initial commit to change to boot 2 --- spring-mvc-java/pom.xml | 37 +++++++++++-------- .../com/baeldung/SpringMVCApplication.java | 11 ++++++ .../baeldung/spring/web/config/WebConfig.java | 13 ++----- .../src/main/resources/application.properties | 21 +++++++++++ 4 files changed, 57 insertions(+), 25 deletions(-) create mode 100644 spring-mvc-java/src/main/java/com/baeldung/SpringMVCApplication.java create mode 100644 spring-mvc-java/src/main/resources/application.properties diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index cb16e91bc4..da9bd04d3d 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -8,17 +8,24 @@ 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 + + + org.springframework.boot + spring-boot-starter-jdbc javax.servlet @@ -106,9 +113,8 @@ 2.4.0 - org.springframework - spring-test - ${spring.version} + org.springframework.boot + spring-boot-starter-test test @@ -134,16 +140,15 @@ 2.8.5 - org.springframework - spring-websocket - ${spring.version} + org.springframework.boot + spring-boot-starter-websocket - - org.springframework - spring-messaging - ${spring.version} - + + + + + org.glassfish javax.el 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..ee263aaab2 --- /dev/null +++ b/spring-mvc-java/src/main/java/com/baeldung/SpringMVCApplication.java @@ -0,0 +1,11 @@ +package com.baeldung; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringMVCApplication { + 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/spring/web/config/WebConfig.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java index 44fef92917..7aa9d6c5b5 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; @@ -26,8 +23,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 +33,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,8 +59,8 @@ 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"); 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..4f618c96a9 --- /dev/null +++ b/spring-mvc-java/src/main/resources/application.properties @@ -0,0 +1,21 @@ +spring.servlet.multipart.max-file-size=10MB +spring.servlet.multipart.max-request-size=10MB +spring.http.multipart.enabled=true +spring.servlet.multipart.location=${java.io.tmpdir} + +logging.level.org.springframework=DEBUG +logging.level.com.baeldung=DEBUG + +#output to a temp_folder/file +logging.file=${java.io.tmpdir}/application.log + +# Logging pattern for the console +logging.pattern.console= %d{yyyy-MM-dd HH:mm:ss} - %msg%n + +# Logging pattern for file +logging.pattern.file= %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg% +spring.http.encoding.charset=UTF-8 +# Enable http encoding support. +spring.http.encoding.enabled=true +# Force the encoding to the configured charset on HTTP requests and responses. +spring.http.encoding.force=true \ No newline at end of file From 78ca924a13817c591603ff00dddca7b370e587e8 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Fri, 6 Sep 2019 01:31:18 +0530 Subject: [PATCH 2/4] [BAEL-15393] - Update Spring File Upload article --- spring-mvc-java/pom.xml | 31 +++---------------- .../java/com/baeldung/aop/LoggingAspect.java | 6 ++-- .../com/baeldung/aop/PerformanceAspect.java | 2 +- .../com/baeldung/aop/PublishingAspect.java | 4 +-- .../baeldung/spring/web/config/WebConfig.java | 12 +------ .../src/main/resources/application.properties | 26 +++------------- 6 files changed, 17 insertions(+), 64 deletions(-) diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index da9bd04d3d..87d2f612af 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -19,14 +19,6 @@ org.springframework.boot spring-boot-starter-web - - org.springframework.boot - spring-boot-starter-tomcat - - - org.springframework.boot - spring-boot-starter-jdbc - javax.servlet javax.servlet-api @@ -40,7 +32,11 @@ javax.servlet jstl - ${jstl.version} + + + org.apache.tomcat.embed + tomcat-embed-jasper + provided @@ -62,17 +58,6 @@ - - commons-fileupload - commons-fileupload - ${commons-fileupload.version} - - - commons-io - commons-io - - - net.sourceforge.htmlunit htmlunit @@ -143,12 +128,6 @@ org.springframework.boot spring-boot-starter-websocket - - - - - - org.glassfish javax.el 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/spring/web/config/WebConfig.java b/spring-mvc-java/src/main/java/com/baeldung/spring/web/config/WebConfig.java index 7aa9d6c5b5..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 @@ -12,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; @@ -63,7 +62,7 @@ public class WebConfig implements WebMvcConfigurer { final SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setPrefix("/WEB-INF/templates/"); templateResolver.setSuffix(".html"); - templateResolver.setTemplateMode("HTML5"); + templateResolver.setTemplateMode("HTML"); return templateResolver; } @@ -87,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 index 4f618c96a9..00c491c271 100644 --- a/spring-mvc-java/src/main/resources/application.properties +++ b/spring-mvc-java/src/main/resources/application.properties @@ -1,21 +1,5 @@ -spring.servlet.multipart.max-file-size=10MB -spring.servlet.multipart.max-request-size=10MB -spring.http.multipart.enabled=true -spring.servlet.multipart.location=${java.io.tmpdir} - -logging.level.org.springframework=DEBUG -logging.level.com.baeldung=DEBUG - -#output to a temp_folder/file -logging.file=${java.io.tmpdir}/application.log - -# Logging pattern for the console -logging.pattern.console= %d{yyyy-MM-dd HH:mm:ss} - %msg%n - -# Logging pattern for file -logging.pattern.file= %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg% -spring.http.encoding.charset=UTF-8 -# Enable http encoding support. -spring.http.encoding.enabled=true -# Force the encoding to the configured charset on HTTP requests and responses. -spring.http.encoding.force=true \ No newline at end of file +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 From 41ca87136da1d70de0b814def471412d2d925d66 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 8 Sep 2019 01:14:46 +0530 Subject: [PATCH 3/4] [BAEL-15393] - Fixed tomcat deployment --- spring-mvc-java/pom.xml | 5 +++ .../com/baeldung/SpringMVCApplication.java | 3 +- .../com/baeldung/config/AppInitializer.java | 33 ------------------- 3 files changed, 7 insertions(+), 34 deletions(-) delete mode 100644 spring-mvc-java/src/main/java/com/baeldung/config/AppInitializer.java diff --git a/spring-mvc-java/pom.xml b/spring-mvc-java/pom.xml index 87d2f612af..ea0acdcb00 100644 --- a/spring-mvc-java/pom.xml +++ b/spring-mvc-java/pom.xml @@ -19,6 +19,10 @@ org.springframework.boot spring-boot-starter-web + + org.springframework.boot + spring-boot-starter-tomcat + javax.servlet javax.servlet-api @@ -280,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 index ee263aaab2..a456dc125e 100644 --- a/spring-mvc-java/src/main/java/com/baeldung/SpringMVCApplication.java +++ b/spring-mvc-java/src/main/java/com/baeldung/SpringMVCApplication.java @@ -2,9 +2,10 @@ 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 { +public class SpringMVCApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringMVCApplication.class, args); } 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); - } - -} From d1eebc8bef10b841e73b7e8ed1577c4aafd48a28 Mon Sep 17 00:00:00 2001 From: amit2103 Date: Sun, 8 Sep 2019 01:54:03 +0530 Subject: [PATCH 4/4] [BAEL-15393] - Fixed tests --- .../com/baeldung/SpringContextIntegrationTest.java | 11 ++++------- .../src/test/java/com/baeldung/SpringContextTest.java | 11 ++++------- 2 files changed, 8 insertions(+), 14 deletions(-) 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