From 9116e0cd094233de0e9acf3f0a510fff33907504 Mon Sep 17 00:00:00 2001 From: Dhawal Kapil Date: Sat, 28 Nov 2020 11:51:46 +0530 Subject: [PATCH] JAVA-2416 Move/rename module spring-dispatcher-servlet - Moved all the contents from spring-dispatcher-servlet to spring-mvc-basics --- pom.xml | 2 - spring-dispatcher-servlet/README.md | 7 -- spring-dispatcher-servlet/pom.xml | 95 ------------------- .../configuration/AppConfig.java | 83 ---------------- .../configuration/WebAppInitializer.java | 23 ----- .../src/main/resources/logback.xml | 13 --- .../src/main/webapp/WEB-INF/jsp/index.jsp | 30 ------ .../src/main/webapp/resources/css/default.css | 4 - .../src/main/webapp/resources/css/example.css | 4 - .../java/com/baeldung/SpringContextTest.java | 19 ---- spring-mvc-basics/README.md | 1 + spring-mvc-basics/pom.xml | 5 + .../main/java/com/baeldung/model}/User.java | 2 +- .../com/baeldung}/services/UserService.java | 4 +- .../baeldung/spring/web/config/WebConfig.java | 58 +++++++++++ .../web}/controller/MultipartController.java | 2 +- .../web}/controller/UserController.java | 7 +- .../web}/controller/UserRestController.java | 7 +- .../main/resources/themes/default.properties | 0 .../main/resources/themes/example.properties | 0 20 files changed, 76 insertions(+), 290 deletions(-) delete mode 100644 spring-dispatcher-servlet/README.md delete mode 100644 spring-dispatcher-servlet/pom.xml delete mode 100644 spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/AppConfig.java delete mode 100644 spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/WebAppInitializer.java delete mode 100644 spring-dispatcher-servlet/src/main/resources/logback.xml delete mode 100644 spring-dispatcher-servlet/src/main/webapp/WEB-INF/jsp/index.jsp delete mode 100644 spring-dispatcher-servlet/src/main/webapp/resources/css/default.css delete mode 100644 spring-dispatcher-servlet/src/main/webapp/resources/css/example.css delete mode 100644 spring-dispatcher-servlet/src/test/java/com/baeldung/SpringContextTest.java rename {spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/domain => spring-mvc-basics/src/main/java/com/baeldung/model}/User.java (93%) rename {spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet => spring-mvc-basics/src/main/java/com/baeldung}/services/UserService.java (72%) rename {spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet => spring-mvc-basics/src/main/java/com/baeldung/web}/controller/MultipartController.java (96%) rename {spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet => spring-mvc-basics/src/main/java/com/baeldung/web}/controller/UserController.java (83%) rename {spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet => spring-mvc-basics/src/main/java/com/baeldung/web}/controller/UserRestController.java (82%) rename {spring-dispatcher-servlet => spring-mvc-basics}/src/main/resources/themes/default.properties (100%) rename {spring-dispatcher-servlet => spring-mvc-basics}/src/main/resources/themes/example.properties (100%) diff --git a/pom.xml b/pom.xml index 82e242b9af..8926cdd48f 100644 --- a/pom.xml +++ b/pom.xml @@ -650,7 +650,6 @@ spring-data-rest-querydsl spring-di spring-di-2 - spring-dispatcher-servlet spring-drools spring-ejb @@ -1151,7 +1150,6 @@ spring-data-rest spring-data-rest-querydsl spring-di - spring-dispatcher-servlet spring-drools spring-ejb diff --git a/spring-dispatcher-servlet/README.md b/spring-dispatcher-servlet/README.md deleted file mode 100644 index 3027546152..0000000000 --- a/spring-dispatcher-servlet/README.md +++ /dev/null @@ -1,7 +0,0 @@ -## Spring DispatcherServlet - -This module contains articles about Spring DispatcherServlet - -## Relevant articles: - -- [An Intro to the Spring DispatcherServlet](https://www.baeldung.com/spring-dispatcherservlet) diff --git a/spring-dispatcher-servlet/pom.xml b/spring-dispatcher-servlet/pom.xml deleted file mode 100644 index 21324e6757..0000000000 --- a/spring-dispatcher-servlet/pom.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - 4.0.0 - spring-dispatcher-servlet - 1.0.0 - spring-dispatcher-servlet - war - - - com.baeldung - parent-spring-5 - 0.0.1-SNAPSHOT - ../parent-spring-5 - - - - - org.springframework - spring-web - ${spring.version} - - - org.springframework - spring-webmvc - ${spring.version} - - - javax.servlet - javax.servlet-api - ${javax.servlet-api.version} - - - javax.servlet.jsp.jstl - jstl-api - ${jstl-api.version} - - - javax.servlet.jsp - javax.servlet.jsp-api - ${javax.servlet.jsp-api.version} - - - javax.servlet - jstl - ${jstl.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.version} - - - commons-fileupload - commons-fileupload - ${commons-fileupload.version} - - - org.springframework.boot - spring-boot-starter-test - ${spring-boot-starter-test.version} - test - - - - - spring-dispatcher-servlet - - - - org.apache.tomcat.maven - tomcat8-maven-plugin - ${tomcat8-maven-plugin.version} - - /springdispatcherservlet - - - - org.apache.maven.plugins - maven-war-plugin - ${maven-war-plugin.version} - - src/main/webapp - false - - - - - - - - 3.0-r1655215 - - - \ No newline at end of file diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/AppConfig.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/AppConfig.java deleted file mode 100644 index c8a6cf06a6..0000000000 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/AppConfig.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.baeldung.springdispatcherservlet.configuration; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.ui.context.support.ResourceBundleThemeSource; -import org.springframework.web.multipart.commons.CommonsMultipartResolver; -import org.springframework.web.servlet.config.annotation.*; -import org.springframework.web.servlet.resource.PathResourceResolver; -import org.springframework.web.servlet.theme.CookieThemeResolver; -import org.springframework.web.servlet.theme.ThemeChangeInterceptor; -import org.springframework.web.servlet.view.JstlView; -import org.springframework.web.servlet.view.UrlBasedViewResolver; - -import java.io.IOException; - -@Configuration -@EnableWebMvc -@ComponentScan("com.baeldung.springdispatcherservlet") -public class AppConfig implements WebMvcConfigurer { - - public void addViewControllers(ViewControllerRegistry registry) { - registry.addViewController("/").setViewName("index"); - } - - /** Multipart file uploading configuratioin */ - @Bean - public CommonsMultipartResolver multipartResolver() throws IOException { - CommonsMultipartResolver resolver = new CommonsMultipartResolver(); - resolver.setMaxUploadSize(10000000); - return resolver; - } - - /** View resolver for JSP */ - @Bean - public UrlBasedViewResolver viewResolver() { - UrlBasedViewResolver resolver = new UrlBasedViewResolver(); - resolver.setPrefix("/WEB-INF/jsp/"); - resolver.setSuffix(".jsp"); - resolver.setViewClass(JstlView.class); - return resolver; - } - - /** Static resource locations including themes*/ - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/resources/**/*") - .addResourceLocations("/", "/resources/") - .setCachePeriod(3600) - .resourceChain(true) - .addResolver(new PathResourceResolver()); - } - - /** BEGIN theme configuration */ - @Bean - public ResourceBundleThemeSource themeSource(){ - ResourceBundleThemeSource themeSource = new ResourceBundleThemeSource(); - themeSource.setDefaultEncoding("UTF-8"); - themeSource.setBasenamePrefix("themes."); - return themeSource; - } - - @Bean - public CookieThemeResolver themeResolver(){ - CookieThemeResolver resolver = new CookieThemeResolver(); - resolver.setDefaultThemeName("default"); - resolver.setCookieName("example-theme-cookie"); - return resolver; - } - - @Bean - public ThemeChangeInterceptor themeChangeInterceptor(){ - ThemeChangeInterceptor interceptor = new ThemeChangeInterceptor(); - interceptor.setParamName("theme"); - return interceptor; - } - - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(themeChangeInterceptor()); - } - /** END theme configuration */ -} \ No newline at end of file diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/WebAppInitializer.java b/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/WebAppInitializer.java deleted file mode 100644 index 0c6c7141a7..0000000000 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/configuration/WebAppInitializer.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.baeldung.springdispatcherservlet.configuration; - -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletRegistration; - -import org.springframework.web.WebApplicationInitializer; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.servlet.DispatcherServlet; - -public class WebAppInitializer implements WebApplicationInitializer { - - @Override - public void onStartup(ServletContext container) throws ServletException { - AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); - context.register(AppConfig.class); - context.setServletContext(container); - - ServletRegistration.Dynamic servlet = container.addServlet("dispatcher", new DispatcherServlet(context)); - servlet.setLoadOnStartup(1); - servlet.addMapping("/"); - } -} diff --git a/spring-dispatcher-servlet/src/main/resources/logback.xml b/spring-dispatcher-servlet/src/main/resources/logback.xml deleted file mode 100644 index 7d900d8ea8..0000000000 --- a/spring-dispatcher-servlet/src/main/resources/logback.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n - - - - - - - - \ No newline at end of file diff --git a/spring-dispatcher-servlet/src/main/webapp/WEB-INF/jsp/index.jsp b/spring-dispatcher-servlet/src/main/webapp/WEB-INF/jsp/index.jsp deleted file mode 100644 index c482eac361..0000000000 --- a/spring-dispatcher-servlet/src/main/webapp/WEB-INF/jsp/index.jsp +++ /dev/null @@ -1,30 +0,0 @@ -<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%> -<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> -<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> -<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" %> - - - - - - - Spring Dispatcher - - - -

Hello World!

-
- Switch Theme! - Switch Theme! -
-
-
-
- - -
-
-
- ${message} - - diff --git a/spring-dispatcher-servlet/src/main/webapp/resources/css/default.css b/spring-dispatcher-servlet/src/main/webapp/resources/css/default.css deleted file mode 100644 index 7f20f36d96..0000000000 --- a/spring-dispatcher-servlet/src/main/webapp/resources/css/default.css +++ /dev/null @@ -1,4 +0,0 @@ -h2 { - color: green; - font-weight: 400; -} \ No newline at end of file diff --git a/spring-dispatcher-servlet/src/main/webapp/resources/css/example.css b/spring-dispatcher-servlet/src/main/webapp/resources/css/example.css deleted file mode 100644 index fe31b0396a..0000000000 --- a/spring-dispatcher-servlet/src/main/webapp/resources/css/example.css +++ /dev/null @@ -1,4 +0,0 @@ -h2 { - color: red; - font-weight: 700; -} \ No newline at end of file diff --git a/spring-dispatcher-servlet/src/test/java/com/baeldung/SpringContextTest.java b/spring-dispatcher-servlet/src/test/java/com/baeldung/SpringContextTest.java deleted file mode 100644 index ba8040f81d..0000000000 --- a/spring-dispatcher-servlet/src/test/java/com/baeldung/SpringContextTest.java +++ /dev/null @@ -1,19 +0,0 @@ -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.web.WebAppConfiguration; - -import com.baeldung.springdispatcherservlet.configuration.AppConfig; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = AppConfig.class) -@WebAppConfiguration -public class SpringContextTest { - - @Test - public void whenSpringContextIsBootstrapped_thenNoExceptions() { - } -} diff --git a/spring-mvc-basics/README.md b/spring-mvc-basics/README.md index cd36ffd94a..c1f8bbda70 100644 --- a/spring-mvc-basics/README.md +++ b/spring-mvc-basics/README.md @@ -8,6 +8,7 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring ### Relevant Articles: - [Spring MVC Tutorial](https://www.baeldung.com/spring-mvc-tutorial) +- [An Intro to the Spring DispatcherServlet] (https://www.baeldung.com/spring-dispatcherservlet) - [The Spring @Controller and @RestController Annotations](https://www.baeldung.com/spring-controller-vs-restcontroller) - [A Guide to the ViewResolver in Spring MVC](https://www.baeldung.com/spring-mvc-view-resolver-tutorial) - [Guide to Spring Handler Mappings](https://www.baeldung.com/spring-handler-mappings) diff --git a/spring-mvc-basics/pom.xml b/spring-mvc-basics/pom.xml index d212bc425a..cd486cb1d3 100644 --- a/spring-mvc-basics/pom.xml +++ b/spring-mvc-basics/pom.xml @@ -24,6 +24,11 @@ org.springframework.boot spring-boot-starter-validation + + commons-fileupload + commons-fileupload + ${commons-fileupload.version} + org.apache.tomcat.embed diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/domain/User.java b/spring-mvc-basics/src/main/java/com/baeldung/model/User.java similarity index 93% rename from spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/domain/User.java rename to spring-mvc-basics/src/main/java/com/baeldung/model/User.java index 6e8cde50db..3265bcc93a 100644 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/domain/User.java +++ b/spring-mvc-basics/src/main/java/com/baeldung/model/User.java @@ -1,4 +1,4 @@ -package com.baeldung.springdispatcherservlet.domain; +package com.baeldung.model; public class User { diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/services/UserService.java b/spring-mvc-basics/src/main/java/com/baeldung/services/UserService.java similarity index 72% rename from spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/services/UserService.java rename to spring-mvc-basics/src/main/java/com/baeldung/services/UserService.java index 1b9bdd4a71..4a70701903 100644 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/services/UserService.java +++ b/spring-mvc-basics/src/main/java/com/baeldung/services/UserService.java @@ -1,8 +1,8 @@ -package com.baeldung.springdispatcherservlet.services; +package com.baeldung.services; import org.springframework.stereotype.Service; -import com.baeldung.springdispatcherservlet.domain.User; +import com.baeldung.model.User; @Service public class UserService { diff --git a/spring-mvc-basics/src/main/java/com/baeldung/spring/web/config/WebConfig.java b/spring-mvc-basics/src/main/java/com/baeldung/spring/web/config/WebConfig.java index 9a321f65a2..ac917018b0 100644 --- a/spring-mvc-basics/src/main/java/com/baeldung/spring/web/config/WebConfig.java +++ b/spring-mvc-basics/src/main/java/com/baeldung/spring/web/config/WebConfig.java @@ -1,13 +1,22 @@ package com.baeldung.spring.web.config; +import java.io.IOException; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ClassPathResource; import org.springframework.http.MediaType; +import org.springframework.ui.context.support.ResourceBundleThemeSource; +import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.ViewResolver; import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.resource.PathResourceResolver; +import org.springframework.web.servlet.theme.CookieThemeResolver; +import org.springframework.web.servlet.theme.ThemeChangeInterceptor; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; import org.springframework.web.servlet.view.ResourceBundleViewResolver; @@ -24,6 +33,14 @@ public class WebConfig implements WebMvcConfigurer { .setViewName("index"); } + /** Multipart file uploading configuratioin */ + @Bean + public CommonsMultipartResolver multipartResolver() throws IOException { + CommonsMultipartResolver resolver = new CommonsMultipartResolver(); + resolver.setMaxUploadSize(10000000); + return resolver; + } + @Bean public ViewResolver viewResolver() { final InternalResourceViewResolver bean = new InternalResourceViewResolver(); @@ -34,6 +51,47 @@ public class WebConfig implements WebMvcConfigurer { return bean; } + /** Static resource locations including themes*/ + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/resources/**/*") + .addResourceLocations("/", "/resources/") + .setCachePeriod(3600) + .resourceChain(true) + .addResolver(new PathResourceResolver()); + } + + /** BEGIN theme configuration */ + @Bean + public ResourceBundleThemeSource themeSource() { + ResourceBundleThemeSource themeSource = new ResourceBundleThemeSource(); + themeSource.setDefaultEncoding("UTF-8"); + themeSource.setBasenamePrefix("themes."); + return themeSource; + } + + @Bean + public CookieThemeResolver themeResolver() { + CookieThemeResolver resolver = new CookieThemeResolver(); + resolver.setDefaultThemeName("default"); + resolver.setCookieName("example-theme-cookie"); + return resolver; + } + + @Bean + public ThemeChangeInterceptor themeChangeInterceptor() { + ThemeChangeInterceptor interceptor = new ThemeChangeInterceptor(); + interceptor.setParamName("theme"); + return interceptor; + } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(themeChangeInterceptor()); + } + + /** END theme configuration */ + @Bean public ViewResolver resourceBundleViewResolver() { final ResourceBundleViewResolver bean = new ResourceBundleViewResolver(); diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/MultipartController.java b/spring-mvc-basics/src/main/java/com/baeldung/web/controller/MultipartController.java similarity index 96% rename from spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/MultipartController.java rename to spring-mvc-basics/src/main/java/com/baeldung/web/controller/MultipartController.java index a693bf039f..2255ba780c 100644 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/MultipartController.java +++ b/spring-mvc-basics/src/main/java/com/baeldung/web/controller/MultipartController.java @@ -1,4 +1,4 @@ -package com.baeldung.springdispatcherservlet.controller; +package com.baeldung.web.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/UserController.java b/spring-mvc-basics/src/main/java/com/baeldung/web/controller/UserController.java similarity index 83% rename from spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/UserController.java rename to spring-mvc-basics/src/main/java/com/baeldung/web/controller/UserController.java index 16e6f293ec..9e39c961a1 100644 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/UserController.java +++ b/spring-mvc-basics/src/main/java/com/baeldung/web/controller/UserController.java @@ -1,7 +1,8 @@ -package com.baeldung.springdispatcherservlet.controller; +package com.baeldung.web.controller; + +import com.baeldung.model.User; +import com.baeldung.services.UserService; -import com.baeldung.springdispatcherservlet.domain.User; -import com.baeldung.springdispatcherservlet.services.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/UserRestController.java b/spring-mvc-basics/src/main/java/com/baeldung/web/controller/UserRestController.java similarity index 82% rename from spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/UserRestController.java rename to spring-mvc-basics/src/main/java/com/baeldung/web/controller/UserRestController.java index 9052662f17..7d13c53ba1 100644 --- a/spring-dispatcher-servlet/src/main/java/com/baeldung/springdispatcherservlet/controller/UserRestController.java +++ b/spring-mvc-basics/src/main/java/com/baeldung/web/controller/UserRestController.java @@ -1,7 +1,8 @@ -package com.baeldung.springdispatcherservlet.controller; +package com.baeldung.web.controller; + +import com.baeldung.model.User; +import com.baeldung.services.UserService; -import com.baeldung.springdispatcherservlet.domain.User; -import com.baeldung.springdispatcherservlet.services.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; diff --git a/spring-dispatcher-servlet/src/main/resources/themes/default.properties b/spring-mvc-basics/src/main/resources/themes/default.properties similarity index 100% rename from spring-dispatcher-servlet/src/main/resources/themes/default.properties rename to spring-mvc-basics/src/main/resources/themes/default.properties diff --git a/spring-dispatcher-servlet/src/main/resources/themes/example.properties b/spring-mvc-basics/src/main/resources/themes/example.properties similarity index 100% rename from spring-dispatcher-servlet/src/main/resources/themes/example.properties rename to spring-mvc-basics/src/main/resources/themes/example.properties