diff --git a/pom.xml b/pom.xml
index cfb3fe1889..11466db083 100644
--- a/pom.xml
+++ b/pom.xml
@@ -628,7 +628,7 @@
spring-boot-mvc-2
spring-boot-performance
spring-boot-properties
-
+ spring-mvc-basics
spring-security-modules/spring-security-kerberos
oauth2-framework-impl
@@ -786,13 +786,13 @@
spring-mobile
spring-mockito
- spring-mvc-basics-2
+ spring-mvc-basics-4
spring-mvc-forms-jsp
spring-mvc-forms-thymeleaf
spring-mvc-java
spring-mvc-kotlin
- spring-mvc-simple
- spring-mvc-simple-2
+ spring-mvc-basics-2
+ spring-mvc-basics-3
spring-mvc-views
spring-mvc-velocity
spring-mvc-webflow
@@ -1257,7 +1257,7 @@
spf4j
spring-boot-performance
spring-boot-properties
-
+ spring-mvc-basics
@@ -1389,13 +1389,13 @@
spring-mobile
spring-mockito
- spring-mvc-basics-2
spring-mvc-forms-jsp
spring-mvc-forms-thymeleaf
spring-mvc-java
spring-mvc-kotlin
- spring-mvc-simple
- spring-mvc-simple-2
+ spring-mvc-basics-2
+ spring-mvc-basics-3
+ spring-mvc-basics-4
spring-mvc-views
spring-mvc-velocity
spring-mvc-webflow
diff --git a/spring-mvc-basics-2/README.md b/spring-mvc-basics-2/README.md
index 0f518095da..880d5dfa0f 100644
--- a/spring-mvc-basics-2/README.md
+++ b/spring-mvc-basics-2/README.md
@@ -1,15 +1,16 @@
-## Spring MVC Basics
+## Spring MVC Basics 2
-This module contains articles about the basics of Spring MVC. Articles about more specific areas of Spring MVC have
-their own module.
+This module contains articles about Spring MVC
-### The Course
-The "REST With Spring" Classes: http://bit.ly/restwithspring
-
-### Relevant Articles:
-- [Quick Guide to Spring Controllers](http://www.baeldung.com/spring-controllers)
-- [The Spring @Controller and @RestController Annotations](http://www.baeldung.com/spring-controller-vs-restcontroller)
-- [Model, ModelMap, and ModelView in Spring MVC](http://www.baeldung.com/spring-mvc-model-model-map-model-view)
-- [Spring Web Contexts](http://www.baeldung.com/spring-web-contexts)
+## Relevant articles:
+- [HandlerAdapters in Spring MVC](https://www.baeldung.com/spring-mvc-handler-adapters)
+- [Template Engines for Spring](https://www.baeldung.com/spring-template-engines)
+- [Spring 5 and Servlet 4 – The PushBuilder](https://www.baeldung.com/spring-5-push)
+- [Servlet Redirect vs Forward](https://www.baeldung.com/servlet-redirect-forward)
+- [Apache Tiles Integration with Spring MVC](https://www.baeldung.com/spring-mvc-apache-tiles)
+- [Guide to Spring Email](https://www.baeldung.com/spring-email)
+- [Request Method Not Supported (405) in Spring](https://www.baeldung.com/spring-request-method-not-supported-405)
+- [Spring @RequestParam Annotation](https://www.baeldung.com/spring-request-param)
- [Spring Optional Path Variables](https://www.baeldung.com/spring-optional-path-variables)
-- [[<-- Prev]](/spring-mvc-basics)
+- More articles: [[more -->]](/spring-mvc-basics-3)
+- More articles: [[<-- prev]](/spring-mvc-basics)
diff --git a/spring-mvc-basics-2/pom.xml b/spring-mvc-basics-2/pom.xml
index 8e36eb38d8..4c3041a209 100644
--- a/spring-mvc-basics-2/pom.xml
+++ b/spring-mvc-basics-2/pom.xml
@@ -1,37 +1,185 @@
-
+
4.0.0
spring-mvc-basics-2
+ 0.0.1-SNAPSHOT
spring-mvc-basics-2
war
com.baeldung
- parent-boot-2
+ parent-spring-5
0.0.1-SNAPSHOT
- ../parent-boot-2
+ ../parent-spring-5
- com.fasterxml.jackson.core
- jackson-databind
+ org.springframework
+ spring-oxm
+ ${spring.version}
- org.springframework
- spring-web
+ com.sun.mail
+ javax.mail
+ ${javax.mail.version}
javax.servlet
javax.servlet-api
- provided
+ ${javax.servlet-api.version}
+
+
+ javax.servlet.jsp
+ javax.servlet.jsp-api
+ ${javax.servlet.jsp-api.version}
+
+
+ javax.servlet
+ jstl
+ ${jstl.version}
+
+
+ org.hibernate
+ hibernate-validator
+ ${hibernate-validator.version}
+
+
+ commons-fileupload
+ commons-fileupload
+ ${commons-fileupload.version}
org.springframework
spring-webmvc
+ ${spring.version}
+
+
+ org.springframework
+ spring-tx
+ ${spring.version}
+
+
+
+
+ org.thymeleaf
+ thymeleaf
+ ${org.thymeleaf-version}
+
+
+ org.thymeleaf
+ thymeleaf-spring4
+ ${org.thymeleaf-version}
+
+
+
+
+ org.freemarker
+ freemarker
+ ${freemarker.version}
+
+
+ org.springframework
+ spring-context-support
+ ${spring.version}
+
+
+
+
+ org.codehaus.groovy
+ groovy-templates
+ ${groovy.version}
+
+
+
+
+ de.neuland-bfi
+ spring-jade4j
+ ${jade.version}
+
+
+
+ org.apache.tiles
+ tiles-jsp
+ ${apache-tiles.version}
+
+
+
+
+ org.springframework
+ spring-test
+ ${spring.version}
+ test
+
+
+ com.rometools
+ rome
+ ${rome.version}
+
+
+ com.thoughtworks.xstream
+ xstream
+ ${xstream.version}
+
+
+ com.github.scribejava
+ scribejava-apis
+ ${scribejava.version}
+
+
+ org.json
+ json
+ ${json.version}
+
+
+ org.apache.maven.surefire
+ surefire-logger-api
+ ${maven-surefire-plugin.version}
+
+ test
+ true
-
\ No newline at end of file
+
+ spring-mvc-basics-2
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ ${maven-war-plugin.version}
+
+ src/main/webapp
+ springMvcSimple
+ false
+ ${deploy-path}
+
+
+
+
+
+
+
+ 1.8
+ 1.8
+ 2.21.0
+ 2.3.2-b02
+ 4.0.0
+ 6.0.10.Final
+ enter-location-of-server
+ 1.3.2
+ 3.0.7.RELEASE
+ 2.4.12
+ 2.3.27-incubating
+ 1.2.5
+ 1.9.0
+ 1.4.9
+ 5.1.0
+ 20180130
+ 3.0.8
+ 1.6.1
+
+
+
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/FreemarkerConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/FreemarkerConfiguration.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/FreemarkerConfiguration.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/FreemarkerConfiguration.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/GroovyConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/GroovyConfiguration.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/GroovyConfiguration.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/GroovyConfiguration.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/JadeTemplateConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/JadeTemplateConfiguration.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/JadeTemplateConfiguration.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/JadeTemplateConfiguration.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/ThymeleafConfiguration.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/TilesApplicationConfiguration.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/TilesApplicationConfiguration.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/TilesApplicationConfiguration.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/TilesApplicationConfiguration.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/WebInitializer.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/WebInitializer.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/WebInitializer.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/configuration/WebInitializer.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/AnnotationMethodHandlerAdapterExample.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/AnnotationMethodHandlerAdapterExample.java
similarity index 97%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/AnnotationMethodHandlerAdapterExample.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/AnnotationMethodHandlerAdapterExample.java
index 89f5b2501b..30bda5c582 100644
--- a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/AnnotationMethodHandlerAdapterExample.java
+++ b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/AnnotationMethodHandlerAdapterExample.java
@@ -1,15 +1,15 @@
-package com.baeldung.spring.controller;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.servlet.ModelAndView;
-
-@Controller
-public class AnnotationMethodHandlerAdapterExample {
- @RequestMapping("/annotedName")
- public ModelAndView getEmployeeName() {
- ModelAndView model = new ModelAndView("Greeting");
- model.addObject("message", "Dinesh");
- return model;
- }
+package com.baeldung.spring.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+@Controller
+public class AnnotationMethodHandlerAdapterExample {
+ @RequestMapping("/annotedName")
+ public ModelAndView getEmployeeName() {
+ ModelAndView model = new ModelAndView("Greeting");
+ model.addObject("message", "Dinesh");
+ return model;
+ }
}
\ No newline at end of file
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/CustomerController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/CustomerController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/CustomerController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/CustomerController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/EmployeeController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/EmployeeController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/EmployeeController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/EmployeeController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/FileUploadController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/FileUploadController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/FileUploadController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/FileUploadController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/MailController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/MailController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/MailController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/MailController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestMappingHandlerAdapterExample.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/RequestMappingHandlerAdapterExample.java
similarity index 97%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestMappingHandlerAdapterExample.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/RequestMappingHandlerAdapterExample.java
index 754bea79f1..628f853208 100644
--- a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestMappingHandlerAdapterExample.java
+++ b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/RequestMappingHandlerAdapterExample.java
@@ -1,15 +1,15 @@
-package com.baeldung.spring.controller;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.servlet.ModelAndView;
-
-@Controller
-public class RequestMappingHandlerAdapterExample {
- @RequestMapping("/requestName")
- public ModelAndView getEmployeeName() {
- ModelAndView model = new ModelAndView("Greeting");
- model.addObject("message", "Madhwal");
- return model;
- }
+package com.baeldung.spring.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.servlet.ModelAndView;
+
+@Controller
+public class RequestMappingHandlerAdapterExample {
+ @RequestMapping("/requestName")
+ public ModelAndView getEmployeeName() {
+ ModelAndView model = new ModelAndView("Greeting");
+ model.addObject("message", "Madhwal");
+ return model;
+ }
}
\ No newline at end of file
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestMethodController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/RequestMethodController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestMethodController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/RequestMethodController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/SimpleControllerHandlerAdapterExample.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/SimpleControllerHandlerAdapterExample.java
similarity index 97%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/SimpleControllerHandlerAdapterExample.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/SimpleControllerHandlerAdapterExample.java
index 17c4ab689e..d3800d4e1c 100644
--- a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/SimpleControllerHandlerAdapterExample.java
+++ b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/SimpleControllerHandlerAdapterExample.java
@@ -1,16 +1,16 @@
-package com.baeldung.spring.controller;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.mvc.AbstractController;
-
-public class SimpleControllerHandlerAdapterExample extends AbstractController {
- @Override
- protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
- ModelAndView model = new ModelAndView("Greeting");
- model.addObject("message", "Dinesh Madhwal");
- return model;
- }
+package com.baeldung.spring.controller;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.web.servlet.ModelAndView;
+import org.springframework.web.servlet.mvc.AbstractController;
+
+public class SimpleControllerHandlerAdapterExample extends AbstractController {
+ @Override
+ protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
+ ModelAndView model = new ModelAndView("Greeting");
+ model.addObject("message", "Dinesh Madhwal");
+ return model;
+ }
}
\ No newline at end of file
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/UserController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/UserController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/UserController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/UserController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/Article.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/Article.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/Article.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/Article.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleFeedView.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/ArticleFeedView.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleFeedView.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/ArticleFeedView.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleRssController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/ArticleRssController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleRssController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/ArticleRssController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleRssFeedViewResolver.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/ArticleRssFeedViewResolver.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/ArticleRssFeedViewResolver.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/ArticleRssFeedViewResolver.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/JsonChannelHttpMessageConverter.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/JsonChannelHttpMessageConverter.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/rss/JsonChannelHttpMessageConverter.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/rss/JsonChannelHttpMessageConverter.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/scribe/GithubController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/scribe/GithubController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/scribe/GithubController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/scribe/GithubController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/scribe/TwitterController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/scribe/TwitterController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/scribe/TwitterController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/scribe/TwitterController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/tiles/TilesController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/tiles/TilesController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/tiles/TilesController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/controller/tiles/TilesController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/domain/Customer.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/Customer.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/domain/Customer.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/Customer.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/domain/Employee.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/Employee.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/domain/Employee.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/Employee.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/domain/MailObject.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/MailObject.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/domain/MailObject.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/MailObject.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/domain/User.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/User.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/domain/User.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/domain/User.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/exception/InvalidRequestException.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/exception/InvalidRequestException.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/exception/InvalidRequestException.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/exception/InvalidRequestException.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/interceptor/FileUploadExceptionAdvice.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/interceptor/FileUploadExceptionAdvice.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/interceptor/FileUploadExceptionAdvice.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/interceptor/FileUploadExceptionAdvice.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailService.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailService.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailService.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailService.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/mail/EmailServiceImpl.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/push/controller/PushController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/push/controller/PushController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/requestparam/RequestParamController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/requestparam/RequestParamController.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/requestparam/RequestParamController.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/requestparam/RequestParamController.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/service/EmployeeService.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/service/EmployeeService.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/service/EmployeeService.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/service/EmployeeService.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/service/EmployeeServiceImpl.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/service/EmployeeServiceImpl.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/service/EmployeeServiceImpl.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/service/EmployeeServiceImpl.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/ForwardedServlet.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/ForwardedServlet.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/ForwardedServlet.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/ForwardedServlet.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/HelloServlet.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/HelloServlet.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/HelloServlet.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/HelloServlet.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/RedirectedServlet.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/RedirectedServlet.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/RedirectedServlet.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/RedirectedServlet.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/WelcomeServlet.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/WelcomeServlet.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/servlets/WelcomeServlet.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/servlets/WelcomeServlet.java
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/validator/CustomerValidator.java b/spring-mvc-basics-2/src/main/java/com/baeldung/spring/validator/CustomerValidator.java
similarity index 100%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/validator/CustomerValidator.java
rename to spring-mvc-basics-2/src/main/java/com/baeldung/spring/validator/CustomerValidator.java
diff --git a/spring-mvc-basics-2/src/main/resources/application.properties b/spring-mvc-basics-2/src/main/resources/application.properties
index 709574239b..9a804c07d8 100644
--- a/spring-mvc-basics-2/src/main/resources/application.properties
+++ b/spring-mvc-basics-2/src/main/resources/application.properties
@@ -1 +1,22 @@
-spring.main.allow-bean-definition-overriding=true
\ No newline at end of file
+#this property file will have to be loaded explicitly as this is not a Spring Boot project
+
+# Gmail SMTP
+spring.mail.host=smtp.gmail.com
+spring.mail.port=587
+spring.mail.username=username
+spring.mail.password=password
+spring.mail.properties.mail.smtp.auth=true
+spring.mail.properties.mail.smtp.starttls.enable=true
+
+# Amazon SES SMTP
+#spring.mail.host=email-smtp.us-west-2.amazonaws.com
+#spring.mail.username=username
+#spring.mail.password=password
+#spring.mail.properties.mail.transport.protocol=smtp
+#spring.mail.properties.mail.smtp.port=25
+#spring.mail.properties.mail.smtp.auth=true
+#spring.mail.properties.mail.smtp.starttls.enable=true
+#spring.mail.properties.mail.smtp.starttls.required=true
+
+# path to attachment file
+attachment.invoice=path_to_file
\ No newline at end of file
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/Greeting.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/Greeting.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/Greeting.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/Greeting.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/Greeting.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/Greeting.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/Greeting.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/Greeting.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/customerHome.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/customerHome.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/customerHome.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/customerHome.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/customerView.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/customerView.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/customerView.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/customerView.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/demo.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/demo.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/demo.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/demo.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/emails.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/emails.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/emails.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/emails.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/employeeHome.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/employeeHome.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/employeeHome.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/employeeHome.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/employeeView.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/employeeView.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/employeeView.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/employeeView.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/error.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/error.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/error.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/error.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/file.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/file.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/file.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/file.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/mail/send.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/mail/send.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/mail/send.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/mail/send.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/pages/apachetiles.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/pages/home.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/pages/home.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/pages/home.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/pages/home.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/pages/springmvc.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/pages/springmvc.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/pages/springmvc.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/pages/springmvc.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-freemarker.ftl b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-freemarker.ftl
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-freemarker.ftl
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-freemarker.ftl
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-groovy.tpl b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-groovy.tpl
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-groovy.tpl
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-groovy.tpl
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-jade.jade b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-jade.jade
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-jade.jade
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-jade.jade
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-thymeleaf.html b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-thymeleaf.html
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/registration-thymeleaf.html
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration-thymeleaf.html
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/registration.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/registration.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/registration.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/layouts/defaultLayout.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/templates/defaultFooter.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/templates/defaultHeader.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/templates/defaultMenu.jsp
diff --git a/spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/tiles.xml b/spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/tiles.xml
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/WEB-INF/views/tiles/tiles.xml
rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/views/tiles/tiles.xml
diff --git a/spring-mvc-simple/src/main/webapp/resources/logo.png b/spring-mvc-basics-2/src/main/webapp/resources/logo.png
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/resources/logo.png
rename to spring-mvc-basics-2/src/main/webapp/resources/logo.png
diff --git a/spring-mvc-simple/src/main/webapp/static/css/app.css b/spring-mvc-basics-2/src/main/webapp/static/css/app.css
similarity index 100%
rename from spring-mvc-simple/src/main/webapp/static/css/app.css
rename to spring-mvc-basics-2/src/main/webapp/static/css/app.css
diff --git a/spring-mvc-simple/src/test/java/com/baeldung/SpringContextTest.java b/spring-mvc-basics-2/src/test/java/com/baeldung/SpringContextTest.java
similarity index 100%
rename from spring-mvc-simple/src/test/java/com/baeldung/SpringContextTest.java
rename to spring-mvc-basics-2/src/test/java/com/baeldung/SpringContextTest.java
diff --git a/spring-mvc-simple/src/test/java/com/baeldung/controller/push/PushControllerIntegrationTest.java b/spring-mvc-basics-2/src/test/java/com/baeldung/controller/push/PushControllerIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple/src/test/java/com/baeldung/controller/push/PushControllerIntegrationTest.java
rename to spring-mvc-basics-2/src/test/java/com/baeldung/controller/push/PushControllerIntegrationTest.java
diff --git a/spring-mvc-simple/src/test/java/com/baeldung/controller/rss/ArticleRssIntegrationTest.java b/spring-mvc-basics-2/src/test/java/com/baeldung/controller/rss/ArticleRssIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple/src/test/java/com/baeldung/controller/rss/ArticleRssIntegrationTest.java
rename to spring-mvc-basics-2/src/test/java/com/baeldung/controller/rss/ArticleRssIntegrationTest.java
diff --git a/spring-mvc-simple/src/test/java/com/baeldung/spring/servlets/HelloServletIntegrationTest.java b/spring-mvc-basics-2/src/test/java/com/baeldung/spring/servlets/HelloServletIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple/src/test/java/com/baeldung/spring/servlets/HelloServletIntegrationTest.java
rename to spring-mvc-basics-2/src/test/java/com/baeldung/spring/servlets/HelloServletIntegrationTest.java
diff --git a/spring-mvc-simple/src/test/java/com/baeldung/spring/servlets/WelcomeServletIntegrationTest.java b/spring-mvc-basics-2/src/test/java/com/baeldung/spring/servlets/WelcomeServletIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple/src/test/java/com/baeldung/spring/servlets/WelcomeServletIntegrationTest.java
rename to spring-mvc-basics-2/src/test/java/com/baeldung/spring/servlets/WelcomeServletIntegrationTest.java
diff --git a/spring-mvc-simple-2/README.md b/spring-mvc-basics-3/README.md
similarity index 87%
rename from spring-mvc-simple-2/README.md
rename to spring-mvc-basics-3/README.md
index 3d240531ae..b21f7b686a 100644
--- a/spring-mvc-simple-2/README.md
+++ b/spring-mvc-basics-3/README.md
@@ -1,4 +1,4 @@
-## Spring MVC Simple 2
+## Spring MVC Basics 3
This module contains articles about Spring MVC
@@ -11,4 +11,5 @@ This module contains articles about Spring MVC
- [Using Enums as Request Parameters in Spring](https://www.baeldung.com/spring-enum-request-param)
- [Excluding URLs for a Filter in a Spring Web Application](https://www.baeldung.com/spring-exclude-filter)
- [Guide to Flash Attributes in a Spring Web Application](https://www.baeldung.com/spring-web-flash-attributes)
-- More articles: [[<-- prev]](/spring-mvc-simple)
+- More articles: [[more -->]](/spring-mvc-basics-4)
+- More articles: [[<-- prev]](/spring-mvc-basics-2)
diff --git a/spring-mvc-simple-2/pom.xml b/spring-mvc-basics-3/pom.xml
similarity index 98%
rename from spring-mvc-simple-2/pom.xml
rename to spring-mvc-basics-3/pom.xml
index 307e8bc94b..48b1e51dd3 100644
--- a/spring-mvc-simple-2/pom.xml
+++ b/spring-mvc-basics-3/pom.xml
@@ -2,8 +2,8 @@
4.0.0
- spring-mvc-simple-2
- spring-mvc-simple-2
+ spring-mvc-basics-3
+ spring-mvc-basics-3
war
Demo project for Spring Boot
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/Application.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/Application.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/Application.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/Application.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/config/WebConfig.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/config/WebConfig.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/config/WebConfig.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/config/WebConfig.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/controller/GenericEntityController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/controller/GenericEntityController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/controller/GenericEntityController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/controller/GenericEntityController.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/GenericBigDecimalConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/GenericBigDecimalConverter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/GenericBigDecimalConverter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/GenericBigDecimalConverter.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToAbstractEntityConverterFactory.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToEmployeeConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEmployeeConverter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToEmployeeConverter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEmployeeConverter.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToEnumConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEnumConverter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToEnumConverter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToEnumConverter.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToLocalDateTimeConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToLocalDateTimeConverter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/StringToLocalDateTimeConverter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/StringToLocalDateTimeConverter.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/controller/AbstractEntityController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/AbstractEntityController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/controller/AbstractEntityController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/AbstractEntityController.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/controller/StringToEmployeeConverterController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/StringToEmployeeConverterController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/converter/controller/StringToEmployeeConverterController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/converter/controller/StringToEmployeeConverterController.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/AbstractEntity.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/AbstractEntity.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/AbstractEntity.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/AbstractEntity.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Bar.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Bar.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Bar.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Bar.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Employee.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Employee.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Employee.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Employee.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Foo.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Foo.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Foo.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Foo.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/GenericEntity.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/GenericEntity.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/GenericEntity.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/GenericEntity.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Modes.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Modes.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/domain/Modes.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/domain/Modes.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/repository/GenericEntityRepository.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/repository/GenericEntityRepository.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/repository/GenericEntityRepository.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/repository/GenericEntityRepository.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/HeaderVersionArgumentResolver.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/boot/web/resolver/Version.java b/spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/Version.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/boot/web/resolver/Version.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/boot/web/resolver/Version.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/CachedBodyHttpServletRequest.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequest.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/CachedBodyHttpServletRequest.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequest.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/CachedBodyServletInputStream.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyServletInputStream.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/CachedBodyServletInputStream.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/CachedBodyServletInputStream.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/ContentCachingFilter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/ContentCachingFilter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/ContentCachingFilter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/ContentCachingFilter.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/HttpRequestDemoConfig.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/HttpRequestDemoConfig.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/HttpRequestDemoConfig.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/HttpRequestDemoConfig.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/Person.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/Person.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/Person.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/Person.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/PersonController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PersonController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/PersonController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PersonController.java
diff --git a/spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/PrintRequestContentFilter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PrintRequestContentFilter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/org/baeldung/cachedrequest/PrintRequestContentFilter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/cachedrequest/PrintRequestContentFilter.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/Application.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/Application.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/Application.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/Application.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/controller/FAQController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/controller/FAQController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/controller/FAQController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/controller/FAQController.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/controller/Ping.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/controller/Ping.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/controller/Ping.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/controller/Ping.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/filter/FilterRegistrationConfig.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/filter/FilterRegistrationConfig.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/filter/FilterRegistrationConfig.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/filter/FilterRegistrationConfig.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/filter/HeaderValidatorFilter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/filter/HeaderValidatorFilter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/filter/HeaderValidatorFilter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/filter/HeaderValidatorFilter.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/filter/LogFilter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/filter/LogFilter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/filter/LogFilter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/filter/LogFilter.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/service/FAQService.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/service/FAQService.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/service/FAQService.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/service/FAQService.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/service/FAQServiceImpl.java b/spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/service/FAQServiceImpl.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/exclude_urls_filter/service/FAQServiceImpl.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/exclude_urls_filter/service/FAQServiceImpl.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/flash_attributes/Application.java b/spring-mvc-basics-3/src/main/java/com/baeldung/flash_attributes/Application.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/flash_attributes/Application.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/flash_attributes/Application.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/flash_attributes/controllers/PoemSubmission.java b/spring-mvc-basics-3/src/main/java/com/baeldung/flash_attributes/controllers/PoemSubmission.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/flash_attributes/controllers/PoemSubmission.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/flash_attributes/controllers/PoemSubmission.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/flash_attributes/model/Poem.java b/spring-mvc-basics-3/src/main/java/com/baeldung/flash_attributes/model/Poem.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/flash_attributes/model/Poem.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/flash_attributes/model/Poem.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/form_submission/Application.java b/spring-mvc-basics-3/src/main/java/com/baeldung/form_submission/Application.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/form_submission/Application.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/form_submission/Application.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/form_submission/controllers/FeedbackForm.java b/spring-mvc-basics-3/src/main/java/com/baeldung/form_submission/controllers/FeedbackForm.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/form_submission/controllers/FeedbackForm.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/form_submission/controllers/FeedbackForm.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/form_submission/model/Feedback.java b/spring-mvc-basics-3/src/main/java/com/baeldung/form_submission/model/Feedback.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/form_submission/model/Feedback.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/form_submission/model/Feedback.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/MyMessageInterpolator.java b/spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/MyMessageInterpolator.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/MyMessageInterpolator.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/MyMessageInterpolator.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/NotNullRequest.java b/spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/NotNullRequest.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/NotNullRequest.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/NotNullRequest.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/ValidationController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/ValidationController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/ValidationController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/ValidationController.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/ValidationExamples.java b/spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/ValidationExamples.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/interpolation/ValidationExamples.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/interpolation/ValidationExamples.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/Application.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/Application.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/Application.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/Application.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/config/MvcConfig.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/config/MvcConfig.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/config/MvcConfig.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/config/MvcConfig.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/config/converter/StringToEnumConverter.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/config/converter/StringToEnumConverter.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/config/converter/StringToEnumConverter.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/config/converter/StringToEnumConverter.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/enums/EnumController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/enums/EnumController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/enums/EnumController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/enums/EnumController.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/exceptions/GlobalControllerExceptionHandler.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/exceptions/GlobalControllerExceptionHandler.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/exceptions/GlobalControllerExceptionHandler.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/exceptions/GlobalControllerExceptionHandler.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/headers/controller/ReadHeaderRestController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/headers/controller/ReadHeaderRestController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/headers/controller/ReadHeaderRestController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/headers/controller/ReadHeaderRestController.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/model/Modes.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/model/Modes.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/model/Modes.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/model/Modes.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/slash/Application.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/slash/Application.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/slash/Application.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/slash/Application.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/spring/slash/SlashParsingController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/spring/slash/SlashParsingController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/spring/slash/SlashParsingController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/spring/slash/SlashParsingController.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java b/spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/SpringListValidationApplication.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraint.java b/spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraint.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraint.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraint.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraintValidator.java b/spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraintValidator.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraintValidator.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/constraint/MaxSizeConstraintValidator.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/controller/MovieController.java b/spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/controller/MovieController.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/controller/MovieController.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/controller/MovieController.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/exception/ConstraintViolationExceptionHandler.java b/spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/exception/ConstraintViolationExceptionHandler.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/exception/ConstraintViolationExceptionHandler.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/exception/ConstraintViolationExceptionHandler.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/model/Movie.java b/spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/model/Movie.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/model/Movie.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/model/Movie.java
diff --git a/spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/service/MovieService.java b/spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/service/MovieService.java
similarity index 100%
rename from spring-mvc-simple-2/src/main/java/com/baeldung/validation/listvalidation/service/MovieService.java
rename to spring-mvc-basics-3/src/main/java/com/baeldung/validation/listvalidation/service/MovieService.java
diff --git a/spring-mvc-simple-2/src/main/resources/application.properties b/spring-mvc-basics-3/src/main/resources/application.properties
similarity index 100%
rename from spring-mvc-simple-2/src/main/resources/application.properties
rename to spring-mvc-basics-3/src/main/resources/application.properties
diff --git a/spring-mvc-simple-2/src/main/resources/templates/feedback.html b/spring-mvc-basics-3/src/main/resources/templates/feedback.html
similarity index 100%
rename from spring-mvc-simple-2/src/main/resources/templates/feedback.html
rename to spring-mvc-basics-3/src/main/resources/templates/feedback.html
diff --git a/spring-mvc-simple-2/src/main/resources/templates/submit.html b/spring-mvc-basics-3/src/main/resources/templates/submit.html
similarity index 100%
rename from spring-mvc-simple-2/src/main/resources/templates/submit.html
rename to spring-mvc-basics-3/src/main/resources/templates/submit.html
diff --git a/spring-mvc-simple-2/src/main/resources/templates/success.html b/spring-mvc-basics-3/src/main/resources/templates/success.html
similarity index 100%
rename from spring-mvc-simple-2/src/main/resources/templates/success.html
rename to spring-mvc-basics-3/src/main/resources/templates/success.html
diff --git a/spring-mvc-simple-2/src/test/java/com/baeldung/AppContextIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/AppContextIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/com/baeldung/AppContextIntegrationTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/AppContextIntegrationTest.java
diff --git a/spring-mvc-simple-2/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootApplicationIntegrationTest.java
diff --git a/spring-mvc-simple-2/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootJPAIntegrationTest.java
diff --git a/spring-mvc-simple-2/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/SpringBootMailIntegrationTest.java
diff --git a/spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyHttpServletRequestUnitTest.java
diff --git a/spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/CachedBodyServletInputStreamUnitTest.java
diff --git a/spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/ContentCachingFilterUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/ContentCachingFilterUnitTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/ContentCachingFilterUnitTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/ContentCachingFilterUnitTest.java
diff --git a/spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/PersonControllerIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PersonControllerIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/PersonControllerIntegrationTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PersonControllerIntegrationTest.java
diff --git a/spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/org/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/cachedrequest/PrintRequestContentFilterUnitTest.java
diff --git a/spring-mvc-simple-2/src/test/java/com/baeldung/headers/controller/ReadHeaderRestControllerIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/headers/controller/ReadHeaderRestControllerIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/com/baeldung/headers/controller/ReadHeaderRestControllerIntegrationTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/headers/controller/ReadHeaderRestControllerIntegrationTest.java
diff --git a/spring-mvc-simple-2/src/test/java/com/baeldung/spring/slash/SlashParsingControllerIntTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/spring/slash/SlashParsingControllerIntTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/com/baeldung/spring/slash/SlashParsingControllerIntTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/spring/slash/SlashParsingControllerIntTest.java
diff --git a/spring-mvc-simple-2/src/test/java/com/baeldung/validation/listvalidation/MovieControllerIntegrationTest.java b/spring-mvc-basics-3/src/test/java/com/baeldung/validation/listvalidation/MovieControllerIntegrationTest.java
similarity index 100%
rename from spring-mvc-simple-2/src/test/java/com/baeldung/validation/listvalidation/MovieControllerIntegrationTest.java
rename to spring-mvc-basics-3/src/test/java/com/baeldung/validation/listvalidation/MovieControllerIntegrationTest.java
diff --git a/spring-mvc-basics-2/.gitignore b/spring-mvc-basics-4/.gitignore
similarity index 100%
rename from spring-mvc-basics-2/.gitignore
rename to spring-mvc-basics-4/.gitignore
diff --git a/spring-mvc-basics-4/README.md b/spring-mvc-basics-4/README.md
new file mode 100644
index 0000000000..19cb9059ed
--- /dev/null
+++ b/spring-mvc-basics-4/README.md
@@ -0,0 +1,11 @@
+## Spring MVC Basics with Java Configuration Example Project
+
+### The Course
+The "REST With Spring" Classes: http://bit.ly/restwithspring
+
+### Relevant Articles:
+- [Quick Guide to Spring Controllers](https://www.baeldung.com/spring-controllers)
+- [Model, ModelMap, and ModelView in Spring MVC](https://www.baeldung.com/spring-mvc-model-model-map-model-view)
+- [Spring Web Contexts](https://www.baeldung.com/spring-web-contexts)
+- [Spring Optional Path variables](https://www.baeldung.com/spring-optional-path-variables)
+- More articles: [[<-- prev]](/spring-mvc-basics-3)
\ No newline at end of file
diff --git a/spring-mvc-basics-4/pom.xml b/spring-mvc-basics-4/pom.xml
new file mode 100644
index 0000000000..8382cd03b8
--- /dev/null
+++ b/spring-mvc-basics-4/pom.xml
@@ -0,0 +1,37 @@
+
+
+ 4.0.0
+ spring-mvc-basics-4
+ spring-mvc-basics-4
+ war
+
+
+ com.baeldung
+ parent-boot-2
+ 0.0.1-SNAPSHOT
+ ../parent-boot-2
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ org.springframework
+ spring-web
+
+
+ javax.servlet
+ javax.servlet-api
+ provided
+
+
+ org.springframework
+ spring-webmvc
+
+
+
+
\ No newline at end of file
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/Greeting.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/Greeting.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/Greeting.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/Greeting.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/GreeterService.java b/spring-mvc-basics-4/src/main/java/com/baeldung/contexts/services/GreeterService.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/GreeterService.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/contexts/services/GreeterService.java
diff --git a/spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/StudentControllerConfig.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/StudentControllerConfig.java
diff --git a/spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/WebConfig.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/WebConfig.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/WebConfig.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/controller/config/WebConfig.java
diff --git a/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/PassParametersController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/PassParametersController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/PassParametersController.java
diff --git a/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestAnnotatedController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestAnnotatedController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestAnnotatedController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestAnnotatedController.java
diff --git a/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/RestController.java
diff --git a/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/TestController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/TestController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/TestController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/controller/controller/TestController.java
diff --git a/spring-mvc-basics-2/src/main/java/org/baeldung/controller/student/Student.java b/spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/org/baeldung/controller/student/Student.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/controller/student/Student.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/Article.java b/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/Article.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/Article.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/Article.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerController.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithMapParamController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithMapParamController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamController.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithOptionalParamController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithOptionalParamController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithOptionalParamController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithOptionalParamController.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithRequiredAttributeController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithRequiredAttributeController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithRequiredAttributeController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithRequiredAttributeController.java
diff --git a/spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithTwoSeparateMethodsController.java b/spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsController.java
similarity index 100%
rename from spring-mvc-basics-2/src/main/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithTwoSeparateMethodsController.java
rename to spring-mvc-basics-4/src/main/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsController.java
diff --git a/spring-mvc-basics-4/src/main/resources/application.properties b/spring-mvc-basics-4/src/main/resources/application.properties
new file mode 100644
index 0000000000..709574239b
--- /dev/null
+++ b/spring-mvc-basics-4/src/main/resources/application.properties
@@ -0,0 +1 @@
+spring.main.allow-bean-definition-overriding=true
\ No newline at end of file
diff --git a/spring-mvc-simple/src/main/resources/logback.xml b/spring-mvc-basics-4/src/main/resources/logback.xml
similarity index 100%
rename from spring-mvc-simple/src/main/resources/logback.xml
rename to spring-mvc-basics-4/src/main/resources/logback.xml
diff --git a/spring-mvc-basics-2/src/main/resources/test-mvc.xml b/spring-mvc-basics-4/src/main/resources/test-mvc.xml
similarity index 100%
rename from spring-mvc-basics-2/src/main/resources/test-mvc.xml
rename to spring-mvc-basics-4/src/main/resources/test-mvc.xml
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/greeting.xml b/spring-mvc-basics-4/src/main/webapp/WEB-INF/greeting.xml
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/greeting.xml
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/greeting.xml
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/index.jsp b/spring-mvc-basics-4/src/main/webapp/WEB-INF/index.jsp
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/index.jsp
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/index.jsp
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/normal-webapp-servlet.xml b/spring-mvc-basics-4/src/main/webapp/WEB-INF/normal-webapp-servlet.xml
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/normal-webapp-servlet.xml
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/normal-webapp-servlet.xml
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/rootApplicationContext.xml b/spring-mvc-basics-4/src/main/webapp/WEB-INF/rootApplicationContext.xml
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/rootApplicationContext.xml
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/rootApplicationContext.xml
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/secure-webapp-servlet.xml b/spring-mvc-basics-4/src/main/webapp/WEB-INF/secure-webapp-servlet.xml
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/secure-webapp-servlet.xml
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/secure-webapp-servlet.xml
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/secure/view/welcome.jsp b/spring-mvc-basics-4/src/main/webapp/WEB-INF/secure/view/welcome.jsp
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/secure/view/welcome.jsp
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/secure/view/welcome.jsp
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/sample.jsp b/spring-mvc-basics-4/src/main/webapp/WEB-INF/view/sample.jsp
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/view/sample.jsp
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/view/sample.jsp
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/scopesExample.jsp b/spring-mvc-basics-4/src/main/webapp/WEB-INF/view/scopesExample.jsp
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/view/scopesExample.jsp
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/view/scopesExample.jsp
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/viewPage.html b/spring-mvc-basics-4/src/main/webapp/WEB-INF/view/viewPage.html
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/view/viewPage.html
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/view/viewPage.html
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/welcome.jsp b/spring-mvc-basics-4/src/main/webapp/WEB-INF/view/welcome.jsp
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/view/welcome.jsp
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/view/welcome.jsp
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/web-old.xml b/spring-mvc-basics-4/src/main/webapp/WEB-INF/web-old.xml
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/web-old.xml
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/web-old.xml
diff --git a/spring-mvc-basics-2/src/main/webapp/WEB-INF/welcome.jsp b/spring-mvc-basics-4/src/main/webapp/WEB-INF/welcome.jsp
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/WEB-INF/welcome.jsp
rename to spring-mvc-basics-4/src/main/webapp/WEB-INF/welcome.jsp
diff --git a/spring-mvc-basics-2/src/main/webapp/index.jsp b/spring-mvc-basics-4/src/main/webapp/index.jsp
similarity index 100%
rename from spring-mvc-basics-2/src/main/webapp/index.jsp
rename to spring-mvc-basics-4/src/main/webapp/index.jsp
diff --git a/spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerAnnotationIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerAnnotationIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/controller/ControllerIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/java/org/baeldung/controller/PassParametersControllerIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/controller/PassParametersControllerIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/org/baeldung/controller/PassParametersControllerIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/controller/PassParametersControllerIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerControllerIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerControllerIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithOptionalParamIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerControllerWithRequiredAttributeIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithMapParamIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java b/spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java
similarity index 100%
rename from spring-mvc-basics-2/src/test/java/com/baeldung/controller/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java
rename to spring-mvc-basics-4/src/test/java/com/baeldung/optionalpathvars/ArticleViewerWithTwoSeparateMethodsIntegrationTest.java
diff --git a/spring-mvc-basics-2/src/test/resources/test-mvc.xml b/spring-mvc-basics-4/src/test/resources/test-mvc.xml
similarity index 100%
rename from spring-mvc-basics-2/src/test/resources/test-mvc.xml
rename to spring-mvc-basics-4/src/test/resources/test-mvc.xml
diff --git a/spring-mvc-basics/README.md b/spring-mvc-basics/README.md
index a995c89a07..cd36ffd94a 100644
--- a/spring-mvc-basics/README.md
+++ b/spring-mvc-basics/README.md
@@ -17,4 +17,4 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
- [Using Spring @ResponseStatus to Set HTTP Status Code](https://www.baeldung.com/spring-response-status)
- [Spring MVC and the @ModelAttribute Annotation](https://www.baeldung.com/spring-mvc-and-the-modelattribute-annotation)
- [The HttpMediaTypeNotAcceptableException in Spring MVC](https://www.baeldung.com/spring-httpmediatypenotacceptable)
-- [[Next -->]](/spring-mvc-basics-2)
\ No newline at end of file
+- More articles: [[more -->]](/spring-mvc-basics-2)
\ No newline at end of file
diff --git a/spring-mvc-basics/pom.xml b/spring-mvc-basics/pom.xml
index ab6d200e67..159dda955f 100644
--- a/spring-mvc-basics/pom.xml
+++ b/spring-mvc-basics/pom.xml
@@ -38,6 +38,7 @@
+ spring-mvc-basics
org.springframework.boot
diff --git a/spring-mvc-simple/README.md b/spring-mvc-simple/README.md
deleted file mode 100644
index ae03fedf3c..0000000000
--- a/spring-mvc-simple/README.md
+++ /dev/null
@@ -1,15 +0,0 @@
-## Spring MVC Simple
-
-This module contains articles about Spring MVC
-
-## Relevant articles:
-
-- [HandlerAdapters in Spring MVC](https://www.baeldung.com/spring-mvc-handler-adapters)
-- [Template Engines for Spring](https://www.baeldung.com/spring-template-engines)
-- [Spring 5 and Servlet 4 – The PushBuilder](https://www.baeldung.com/spring-5-push)
-- [Servlet Redirect vs Forward](https://www.baeldung.com/servlet-redirect-forward)
-- [Apache Tiles Integration with Spring MVC](https://www.baeldung.com/spring-mvc-apache-tiles)
-- [Guide to Spring Email](https://www.baeldung.com/spring-email)
-- [Request Method Not Supported (405) in Spring](https://www.baeldung.com/spring-request-method-not-supported-405)
-- [Spring @RequestParam Annotation](https://www.baeldung.com/spring-request-param)
-- More articles: [[more -->]](/spring-mvc-simple-2)
\ No newline at end of file
diff --git a/spring-mvc-simple/pom.xml b/spring-mvc-simple/pom.xml
deleted file mode 100644
index 539e81307a..0000000000
--- a/spring-mvc-simple/pom.xml
+++ /dev/null
@@ -1,185 +0,0 @@
-
-
- 4.0.0
- spring-mvc-simple
- 0.0.1-SNAPSHOT
- spring-mvc-simple
- war
-
-
- com.baeldung
- parent-spring-5
- 0.0.1-SNAPSHOT
- ../parent-spring-5
-
-
-
-
- org.springframework
- spring-oxm
- ${spring.version}
-
-
- com.sun.mail
- javax.mail
- ${javax.mail.version}
-
-
- javax.servlet
- javax.servlet-api
- ${javax.servlet-api.version}
-
-
- javax.servlet.jsp
- javax.servlet.jsp-api
- ${javax.servlet.jsp-api.version}
-
-
- javax.servlet
- jstl
- ${jstl.version}
-
-
- org.hibernate
- hibernate-validator
- ${hibernate-validator.version}
-
-
- commons-fileupload
- commons-fileupload
- ${commons-fileupload.version}
-
-
- org.springframework
- spring-webmvc
- ${spring.version}
-
-
- org.springframework
- spring-tx
- ${spring.version}
-
-
-
-
- org.thymeleaf
- thymeleaf
- ${org.thymeleaf-version}
-
-
- org.thymeleaf
- thymeleaf-spring4
- ${org.thymeleaf-version}
-
-
-
-
- org.freemarker
- freemarker
- ${freemarker.version}
-
-
- org.springframework
- spring-context-support
- ${spring.version}
-
-
-
-
- org.codehaus.groovy
- groovy-templates
- ${groovy.version}
-
-
-
-
- de.neuland-bfi
- spring-jade4j
- ${jade.version}
-
-
-
- org.apache.tiles
- tiles-jsp
- ${apache-tiles.version}
-
-
-
-
- org.springframework
- spring-test
- ${spring.version}
- test
-
-
- com.rometools
- rome
- ${rome.version}
-
-
- com.thoughtworks.xstream
- xstream
- ${xstream.version}
-
-
- com.github.scribejava
- scribejava-apis
- ${scribejava.version}
-
-
- org.json
- json
- ${json.version}
-
-
- org.apache.maven.surefire
- surefire-logger-api
- ${maven-surefire-plugin.version}
-
- test
- true
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
- ${maven-war-plugin.version}
-
- src/main/webapp
- springMvcSimple
- false
- ${deploy-path}
-
-
-
-
- spring-mvc-simple
-
-
-
- 1.8
- 1.8
- 2.21.0
- 2.3.2-b02
- 4.0.0
- 6.0.10.Final
- enter-location-of-server
- 1.3.2
- 3.0.7.RELEASE
- 2.4.12
- 2.3.27-incubating
- 1.2.5
- 1.9.0
- 1.4.9
- 5.1.0
- 20180130
- 3.0.8
- 1.6.1
-
-
-
diff --git a/spring-mvc-simple/src/main/resources/application.properties b/spring-mvc-simple/src/main/resources/application.properties
deleted file mode 100644
index 9a804c07d8..0000000000
--- a/spring-mvc-simple/src/main/resources/application.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-#this property file will have to be loaded explicitly as this is not a Spring Boot project
-
-# Gmail SMTP
-spring.mail.host=smtp.gmail.com
-spring.mail.port=587
-spring.mail.username=username
-spring.mail.password=password
-spring.mail.properties.mail.smtp.auth=true
-spring.mail.properties.mail.smtp.starttls.enable=true
-
-# Amazon SES SMTP
-#spring.mail.host=email-smtp.us-west-2.amazonaws.com
-#spring.mail.username=username
-#spring.mail.password=password
-#spring.mail.properties.mail.transport.protocol=smtp
-#spring.mail.properties.mail.smtp.port=25
-#spring.mail.properties.mail.smtp.auth=true
-#spring.mail.properties.mail.smtp.starttls.enable=true
-#spring.mail.properties.mail.smtp.starttls.required=true
-
-# path to attachment file
-attachment.invoice=path_to_file
\ No newline at end of file