diff --git a/spring-all/README.md b/spring-all/README.md index 95b87cfee1..96572c1d0e 100644 --- a/spring-all/README.md +++ b/spring-all/README.md @@ -15,14 +15,11 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring - [A Spring Custom Annotation for a Better DAO](http://www.baeldung.com/spring-annotation-bean-pre-processor) - [What’s New in Spring 4.3?](http://www.baeldung.com/whats-new-in-spring-4-3) - [Running Setup Data on Startup in Spring](http://www.baeldung.com/running-setup-logic-on-startup-in-spring) -- [Quick Guide to Spring Controllers](http://www.baeldung.com/spring-controllers) - [Quick Guide to Spring Bean Scopes](http://www.baeldung.com/spring-bean-scopes) - [Custom Scope in Spring](http://www.baeldung.com/spring-custom-scope) - [A CLI with Spring Shell](http://www.baeldung.com/spring-shell-cli) - [JasperReports with Spring](http://www.baeldung.com/spring-jasper) -- [Model, ModelMap, and ModelView in Spring MVC](http://www.baeldung.com/spring-mvc-model-model-map-model-view) - [@Order in Spring](http://www.baeldung.com/spring-order) -- [Spring Web Contexts](http://www.baeldung.com/spring-web-contexts) - [Spring @Primary Annotation](http://www.baeldung.com/spring-primary) - [Spring Events](https://www.baeldung.com/spring-events) - [Spring Null-Safety Annotations](https://www.baeldung.com/spring-null-safety-annotations) diff --git a/spring-mvc-basics-2/.gitignore b/spring-mvc-basics-2/.gitignore new file mode 100644 index 0000000000..83c05e60c8 --- /dev/null +++ b/spring-mvc-basics-2/.gitignore @@ -0,0 +1,13 @@ +*.class + +#folders# +/target +/neoDb* +/data +/src/main/webapp/WEB-INF/classes +*/META-INF/* + +# Packaged files # +*.jar +*.war +*.ear \ No newline at end of file diff --git a/spring-mvc-basics-2/README.md b/spring-mvc-basics-2/README.md new file mode 100644 index 0000000000..8cf753bbdc --- /dev/null +++ b/spring-mvc-basics-2/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](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) \ No newline at end of file diff --git a/spring-mvc-basics-2/pom.xml b/spring-mvc-basics-2/pom.xml new file mode 100644 index 0000000000..706459a268 --- /dev/null +++ b/spring-mvc-basics-2/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + spring-mvc-basics-2 + spring-mvc-basics-2 + war + + + parent-boot-2 + com.baeldung + 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-all/src/main/java/com/baeldung/contexts/Greeting.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/Greeting.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/Greeting.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/Greeting.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java similarity index 94% rename from spring-all/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java index 318dc5ea65..1dffad637a 100644 --- a/spring-all/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java +++ b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationAndServletInitializer.java @@ -2,7 +2,6 @@ package com.baeldung.contexts.config; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer; public class AnnotationsBasedApplicationAndServletInitializer //extends AbstractDispatcherServletInitializer { diff --git a/spring-all/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java similarity index 89% rename from spring-all/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java index b685d2fa83..ffa80d58bf 100644 --- a/spring-all/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java +++ b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/AnnotationsBasedApplicationInitializer.java @@ -1,6 +1,5 @@ package com.baeldung.contexts.config; -import org.springframework.web.context.AbstractContextLoaderInitializer; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; diff --git a/spring-all/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/ApplicationInitializer.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/NormalWebAppConfig.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/RootApplicationConfig.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java similarity index 92% rename from spring-all/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java index d74d4a6c63..580e86d2b5 100644 --- a/spring-all/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java +++ b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureAnnotationsBasedApplicationAndServletInitializer.java @@ -2,7 +2,6 @@ package com.baeldung.contexts.config; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer; public class SecureAnnotationsBasedApplicationAndServletInitializer// extends AbstractDispatcherServletInitializer { diff --git a/spring-all/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/config/SecureWebAppConfig.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/normal/HelloWorldController.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/secure/HelloWorldSecureController.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/ApplicationContextUtilService.java diff --git a/spring-all/src/main/java/com/baeldung/contexts/services/GreeterService.java b/spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/GreeterService.java similarity index 100% rename from spring-all/src/main/java/com/baeldung/contexts/services/GreeterService.java rename to spring-mvc-basics-2/src/main/java/com/baeldung/contexts/services/GreeterService.java diff --git a/spring-all/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java similarity index 77% rename from spring-all/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java rename to spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java index 85305e057f..218418ecc8 100644 --- a/spring-all/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java +++ b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/StudentControllerConfig.java @@ -1,32 +1,28 @@ -package org.baeldung.controller.config; - -import javax.servlet.ServletContext; -import javax.servlet.ServletException; -import javax.servlet.ServletRegistration; - -import org.springframework.context.support.GenericApplicationContext; -import org.springframework.web.WebApplicationInitializer; -import org.springframework.web.context.ContextLoaderListener; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.context.support.GenericWebApplicationContext; -import org.springframework.web.servlet.DispatcherServlet; - -public class StudentControllerConfig //implements WebApplicationInitializer -{ - - //uncomment to run the student controller example - //@Override - public void onStartup(ServletContext sc) throws ServletException { - AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); - root.register(WebConfig.class); - root.setServletContext(sc); - sc.addListener(new ContextLoaderListener(root)); - - DispatcherServlet dv = new DispatcherServlet(root); - - ServletRegistration.Dynamic appServlet = sc.addServlet("test-mvc", dv); - appServlet.setLoadOnStartup(1); - appServlet.addMapping("/test/*"); - } -} +package org.baeldung.controller.config; + +import javax.servlet.ServletContext; +import javax.servlet.ServletException; +import javax.servlet.ServletRegistration; + +import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +public class StudentControllerConfig //implements WebApplicationInitializer +{ + + //uncomment to run the student controller example + //@Override + public void onStartup(ServletContext sc) throws ServletException { + AnnotationConfigWebApplicationContext root = new AnnotationConfigWebApplicationContext(); + root.register(WebConfig.class); + root.setServletContext(sc); + sc.addListener(new ContextLoaderListener(root)); + + DispatcherServlet dv = new DispatcherServlet(root); + + ServletRegistration.Dynamic appServlet = sc.addServlet("test-mvc", dv); + appServlet.setLoadOnStartup(1); + appServlet.addMapping("/test/*"); + } +} diff --git a/spring-all/src/main/java/org/baeldung/controller/config/WebConfig.java b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/WebConfig.java similarity index 97% rename from spring-all/src/main/java/org/baeldung/controller/config/WebConfig.java rename to spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/WebConfig.java index a17210f3b8..485c1d9032 100644 --- a/spring-all/src/main/java/org/baeldung/controller/config/WebConfig.java +++ b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/config/WebConfig.java @@ -1,28 +1,28 @@ -package org.baeldung.controller.config; - -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.ViewResolver; -import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import org.springframework.web.servlet.view.InternalResourceViewResolver; - -@Configuration -@EnableWebMvc -@ComponentScan(basePackages = { "org.baeldung.controller.controller", "org.baeldung.controller.config" }) -public class WebConfig implements WebMvcConfigurer { - @Override - public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { - configurer.enable(); - } - - @Bean - public ViewResolver viewResolver() { - InternalResourceViewResolver bean = new InternalResourceViewResolver(); - bean.setPrefix("/WEB-INF/"); - bean.setSuffix(".jsp"); - return bean; - } +package org.baeldung.controller.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.ViewResolver; +import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.view.InternalResourceViewResolver; + +@Configuration +@EnableWebMvc +@ComponentScan(basePackages = { "org.baeldung.controller.controller", "org.baeldung.controller.config" }) +public class WebConfig implements WebMvcConfigurer { + @Override + public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { + configurer.enable(); + } + + @Bean + public ViewResolver viewResolver() { + InternalResourceViewResolver bean = new InternalResourceViewResolver(); + bean.setPrefix("/WEB-INF/"); + bean.setSuffix(".jsp"); + return bean; + } } \ No newline at end of file diff --git a/spring-all/src/main/java/org/baeldung/controller/controller/PassParametersController.java b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/PassParametersController.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/controller/controller/PassParametersController.java rename to spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/PassParametersController.java diff --git a/spring-all/src/main/java/org/baeldung/controller/controller/RestAnnotatedController.java b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestAnnotatedController.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/controller/controller/RestAnnotatedController.java rename to spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestAnnotatedController.java diff --git a/spring-all/src/main/java/org/baeldung/controller/controller/RestController.java b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestController.java similarity index 86% rename from spring-all/src/main/java/org/baeldung/controller/controller/RestController.java rename to spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestController.java index 4b38b4dd34..4e5d1d9e17 100644 --- a/spring-all/src/main/java/org/baeldung/controller/controller/RestController.java +++ b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/RestController.java @@ -10,7 +10,8 @@ import org.springframework.web.bind.annotation.ResponseBody; public class RestController { @GetMapping(value = "/student/{studentId}") - public @ResponseBody Student getTestData(@PathVariable Integer studentId) { + public @ResponseBody + Student getTestData(@PathVariable Integer studentId) { Student student = new Student(); student.setName("Peter"); student.setId(studentId); diff --git a/spring-all/src/main/java/org/baeldung/controller/controller/TestController.java b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/TestController.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/controller/controller/TestController.java rename to spring-mvc-basics-2/src/main/java/org/baeldung/controller/controller/TestController.java diff --git a/spring-all/src/main/java/org/baeldung/controller/student/Student.java b/spring-mvc-basics-2/src/main/java/org/baeldung/controller/student/Student.java similarity index 100% rename from spring-all/src/main/java/org/baeldung/controller/student/Student.java rename to spring-mvc-basics-2/src/main/java/org/baeldung/controller/student/Student.java diff --git a/spring-mvc-basics-2/src/main/resources/application.properties b/spring-mvc-basics-2/src/main/resources/application.properties new file mode 100644 index 0000000000..709574239b --- /dev/null +++ b/spring-mvc-basics-2/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-basics-2/src/main/resources/logback.xml b/spring-mvc-basics-2/src/main/resources/logback.xml new file mode 100644 index 0000000000..7d900d8ea8 --- /dev/null +++ b/spring-mvc-basics-2/src/main/resources/logback.xml @@ -0,0 +1,13 @@ + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + + \ No newline at end of file diff --git a/spring-all/src/main/resources/test-mvc.xml b/spring-mvc-basics-2/src/main/resources/test-mvc.xml similarity index 100% rename from spring-all/src/main/resources/test-mvc.xml rename to spring-mvc-basics-2/src/main/resources/test-mvc.xml diff --git a/spring-all/src/main/webapp/WEB-INF/greeting.xml b/spring-mvc-basics-2/src/main/webapp/WEB-INF/greeting.xml similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/greeting.xml rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/greeting.xml diff --git a/spring-all/src/main/webapp/WEB-INF/index.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/index.jsp similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/index.jsp rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/index.jsp diff --git a/spring-all/src/main/webapp/WEB-INF/normal-webapp-servlet.xml b/spring-mvc-basics-2/src/main/webapp/WEB-INF/normal-webapp-servlet.xml similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/normal-webapp-servlet.xml rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/normal-webapp-servlet.xml diff --git a/spring-all/src/main/webapp/WEB-INF/rootApplicationContext.xml b/spring-mvc-basics-2/src/main/webapp/WEB-INF/rootApplicationContext.xml similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/rootApplicationContext.xml rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/rootApplicationContext.xml diff --git a/spring-all/src/main/webapp/WEB-INF/secure-webapp-servlet.xml b/spring-mvc-basics-2/src/main/webapp/WEB-INF/secure-webapp-servlet.xml similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/secure-webapp-servlet.xml rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/secure-webapp-servlet.xml diff --git a/spring-all/src/main/webapp/WEB-INF/secure/view/welcome.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/secure/view/welcome.jsp similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/secure/view/welcome.jsp rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/secure/view/welcome.jsp diff --git a/spring-all/src/main/webapp/WEB-INF/view/sample.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/sample.jsp similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/view/sample.jsp rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/view/sample.jsp diff --git a/spring-all/src/main/webapp/WEB-INF/view/scopesExample.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/scopesExample.jsp similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/view/scopesExample.jsp rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/view/scopesExample.jsp diff --git a/spring-all/src/main/webapp/WEB-INF/view/viewPage.html b/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/viewPage.html similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/view/viewPage.html rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/view/viewPage.html diff --git a/spring-all/src/main/webapp/WEB-INF/view/welcome.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/view/welcome.jsp similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/view/welcome.jsp rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/view/welcome.jsp diff --git a/spring-all/src/main/webapp/WEB-INF/web-old.xml b/spring-mvc-basics-2/src/main/webapp/WEB-INF/web-old.xml similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/web-old.xml rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/web-old.xml diff --git a/spring-all/src/main/webapp/WEB-INF/welcome.jsp b/spring-mvc-basics-2/src/main/webapp/WEB-INF/welcome.jsp similarity index 100% rename from spring-all/src/main/webapp/WEB-INF/welcome.jsp rename to spring-mvc-basics-2/src/main/webapp/WEB-INF/welcome.jsp diff --git a/spring-all/src/main/webapp/index.jsp b/spring-mvc-basics-2/src/main/webapp/index.jsp similarity index 100% rename from spring-all/src/main/webapp/index.jsp rename to spring-mvc-basics-2/src/main/webapp/index.jsp diff --git a/spring-all/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java b/spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java similarity index 97% rename from spring-all/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java rename to spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java index 82c8704360..e32d9f7aca 100644 --- a/spring-all/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java +++ b/spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerAnnotationIntegrationTest.java @@ -1,79 +1,79 @@ -package org.baeldung.controller; - -import com.fasterxml.jackson.databind.ObjectMapper; -import org.baeldung.controller.config.WebConfig; -import org.baeldung.controller.student.Student; -import org.junit.Assert; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; -import org.springframework.test.context.web.AnnotationConfigWebContextLoader; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import org.springframework.test.web.servlet.setup.MockMvcBuilders; -import org.springframework.web.context.WebApplicationContext; -import org.springframework.web.servlet.ModelAndView; - -@RunWith(SpringJUnit4ClassRunner.class) -@WebAppConfiguration -@ContextConfiguration(classes = { WebConfig.class }, loader = AnnotationConfigWebContextLoader.class) -public class ControllerAnnotationIntegrationTest { - - private MockMvc mockMvc; - - @Autowired - private WebApplicationContext wac; - - private Student selectedStudent; - - @Before - public void setUp() { - this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); - - selectedStudent = new Student(); - selectedStudent.setId(1); - selectedStudent.setName("Peter"); - } - - @Test - public void testTestController() throws Exception { - - ModelAndView mv = this.mockMvc.perform(MockMvcRequestBuilders.get("/test/")).andReturn().getModelAndView(); - - // validate modal data - Assert.assertSame(mv.getModelMap().get("data").toString(), "Welcome home man"); - - // validate view name - Assert.assertSame(mv.getViewName(), "welcome"); - } - - @Test - public void testRestController() throws Exception { - - String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/student/{studentId}", 1)).andReturn().getResponse().getContentAsString(); - - ObjectMapper reader = new ObjectMapper(); - - Student studentDetails = reader.readValue(responseBody, Student.class); - - Assert.assertEquals(selectedStudent, studentDetails); - - } - - @Test - public void testRestAnnotatedController() throws Exception { - - String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/annotated/student/{studentId}", 1)).andReturn().getResponse().getContentAsString(); - - ObjectMapper reader = new ObjectMapper(); - - Student studentDetails = reader.readValue(responseBody, Student.class); - - Assert.assertEquals(selectedStudent, studentDetails); - } - -} +package org.baeldung.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.baeldung.controller.config.WebConfig; +import org.baeldung.controller.student.Student; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.AnnotationConfigWebContextLoader; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.servlet.ModelAndView; + +@RunWith(SpringJUnit4ClassRunner.class) +@WebAppConfiguration +@ContextConfiguration(classes = { WebConfig.class }, loader = AnnotationConfigWebContextLoader.class) +public class ControllerAnnotationIntegrationTest { + + private MockMvc mockMvc; + + @Autowired + private WebApplicationContext wac; + + private Student selectedStudent; + + @Before + public void setUp() { + this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); + + selectedStudent = new Student(); + selectedStudent.setId(1); + selectedStudent.setName("Peter"); + } + + @Test + public void testTestController() throws Exception { + + ModelAndView mv = this.mockMvc.perform(MockMvcRequestBuilders.get("/test/")).andReturn().getModelAndView(); + + // validate modal data + Assert.assertSame(mv.getModelMap().get("data").toString(), "Welcome home man"); + + // validate view name + Assert.assertSame(mv.getViewName(), "welcome"); + } + + @Test + public void testRestController() throws Exception { + + String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/student/{studentId}", 1)).andReturn().getResponse().getContentAsString(); + + ObjectMapper reader = new ObjectMapper(); + + Student studentDetails = reader.readValue(responseBody, Student.class); + + Assert.assertEquals(selectedStudent, studentDetails); + + } + + @Test + public void testRestAnnotatedController() throws Exception { + + String responseBody = this.mockMvc.perform(MockMvcRequestBuilders.get("/annotated/student/{studentId}", 1)).andReturn().getResponse().getContentAsString(); + + ObjectMapper reader = new ObjectMapper(); + + Student studentDetails = reader.readValue(responseBody, Student.class); + + Assert.assertEquals(selectedStudent, studentDetails); + } + +} diff --git a/spring-all/src/test/java/org/baeldung/controller/ControllerIntegrationTest.java b/spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/controller/ControllerIntegrationTest.java rename to spring-mvc-basics-2/src/test/java/org/baeldung/controller/ControllerIntegrationTest.java diff --git a/spring-all/src/test/java/org/baeldung/controller/PassParametersControllerIntegrationTest.java b/spring-mvc-basics-2/src/test/java/org/baeldung/controller/PassParametersControllerIntegrationTest.java similarity index 100% rename from spring-all/src/test/java/org/baeldung/controller/PassParametersControllerIntegrationTest.java rename to spring-mvc-basics-2/src/test/java/org/baeldung/controller/PassParametersControllerIntegrationTest.java diff --git a/spring-mvc-basics-2/src/test/resources/test-mvc.xml b/spring-mvc-basics-2/src/test/resources/test-mvc.xml new file mode 100644 index 0000000000..15f950ed4f --- /dev/null +++ b/spring-mvc-basics-2/src/test/resources/test-mvc.xml @@ -0,0 +1,24 @@ + + + + + + + + /WEB-INF/ + + + .jsp + + + \ No newline at end of file