diff --git a/spring-mvc-simple/pom.xml b/spring-mvc-simple/pom.xml
index bd63b5ed1c..e4e30183eb 100644
--- a/spring-mvc-simple/pom.xml
+++ b/spring-mvc-simple/pom.xml
@@ -20,10 +20,6 @@
spring-oxm
${spring-oxm.version}
-
- org.springframework
- spring-context-support
-
com.sun.mail
javax.mail
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
index 284be6c212..941a984684 100644
--- a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/ApplicationConfiguration.java
@@ -1,7 +1,9 @@
package com.baeldung.spring.configuration;
-import com.baeldung.spring.controller.rss.ArticleRssFeedViewResolver;
-import com.baeldung.spring.controller.rss.JsonChannelHttpMessageConverter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@@ -21,13 +23,12 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.ContentNegotiatingViewResolver;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Properties;
+import com.baeldung.spring.controller.rss.ArticleRssFeedViewResolver;
+import com.baeldung.spring.controller.rss.JsonChannelHttpMessageConverter;
@Configuration
@EnableWebMvc
-@ComponentScan(basePackages = { "com.baeldung.springmvcforms", "com.baeldung.spring.controller", "com.baeldung.spring.validator", "com.baeldung.spring.mail" })
+@ComponentScan(basePackages = { "com.baeldung.springmvcforms", "com.baeldung.spring.controller", "com.baeldung.spring.validator", "com.baeldung.spring.mail", "com.baeldung.spring.service" })
public class ApplicationConfiguration implements WebMvcConfigurer {
@Override
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java
index 3072501cfa..3aba7e9d89 100644
--- a/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/configuration/PushConfiguration.java
@@ -8,9 +8,10 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
+// needs HTTP 2 https://github.com/spring-projects/spring-framework/wiki/HTTP-2-support
@Configuration
@EnableWebMvc
-@ComponentScan(basePackages = "com.baeldung.spring.controller.push")
+@ComponentScan(basePackages = "com.baeldung.spring.push.controller")
public class PushConfiguration implements WebMvcConfigurer {
@Bean
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestParamController.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestParamController.java
new file mode 100644
index 0000000000..a9846f1ba9
--- /dev/null
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/RequestParamController.java
@@ -0,0 +1,79 @@
+package com.baeldung.spring.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+
+@Controller
+public class RequestParamController {
+
+ @GetMapping("/api/foos")
+ @ResponseBody
+ public String getFoos(@RequestParam String id){
+ return "ID: " + id;
+ }
+
+ @PostMapping("/api/foos")
+ @ResponseBody
+ public String addFoo(@RequestParam(name = "id") String fooId, @RequestParam String name){
+ return "ID: " + fooId;
+ }
+
+ @GetMapping("/api/foos2")
+ @ResponseBody
+ public String getFoos2(@RequestParam(required = false) String id){
+ return "ID: " + id;
+ }
+
+ @GetMapping("/api/foos3")
+ @ResponseBody
+ public String getFoos3(@RequestParam(defaultValue = "test") String id){
+ return "ID: " + id;
+ }
+
+ @PostMapping("/api/foos1")
+ @ResponseBody
+ public String updateFoos(@RequestParam Map allParams){
+ return "Parameters are " + allParams.entrySet();
+ }
+
+ @GetMapping("/api/foos4")
+ @ResponseBody
+ public String getFoos4(@RequestParam List id){
+ return "ID are " + id;
+ }
+
+ @GetMapping("/foos/{id}")
+ @ResponseBody
+ public String getFooById(@PathVariable String id){
+ return "ID: " + id;
+ }
+
+ @GetMapping("/foos")
+ @ResponseBody
+ public String getFooByIdUsingQueryParam(@RequestParam String id){
+ return "ID: " + id;
+ }
+
+ @GetMapping({"/myfoos/optional", "/myfoos/optional/{id}"})
+ @ResponseBody
+ public String getFooByOptionalId(@PathVariable(required = false) String id){
+ return "ID: " + id;
+ }
+
+ @GetMapping("/myfoos/optionalParam")
+ @ResponseBody
+ public String getFooByOptionalIdUsingQueryParam(@RequestParam(required = false) String id){
+ return "ID: " + id;
+ }
+
+
+
+}
diff --git a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/push/PushController.java b/spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java
similarity index 92%
rename from spring-mvc-simple/src/main/java/com/baeldung/spring/controller/push/PushController.java
rename to spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java
index 88448d4885..e812e5df90 100644
--- a/spring-mvc-simple/src/main/java/com/baeldung/spring/controller/push/PushController.java
+++ b/spring-mvc-simple/src/main/java/com/baeldung/spring/push/controller/PushController.java
@@ -1,4 +1,4 @@
-package com.baeldung.spring.controller.push;
+package com.baeldung.spring.push.controller;
import javax.servlet.http.PushBuilder;