From 45e5b078483c16232711608348f09de4dad437c4 Mon Sep 17 00:00:00 2001 From: ifan112 Date: 2019年2月22日 15:41:42 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E4=B8=80?= =?UTF-8?q?=E4=B8=AAspring-webmvc=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 +++ pom.xml | 44 ++++++++++++++++++ ...oSpringWebMvcApplicationConfiguration.java | 11 +++++ ...emoSpringWebMvcApplicationInitializer.java | 45 +++++++++++++++++++ .../demo/swmvc/api/TestController.java | 25 +++++++++++ .../demo/swmvc/service/OrderService.java | 6 +++ .../swmvc/service/impl/OrderServiceImpl.java | 17 +++++++ src/main/webapp/WEB-INF/web.xml | 7 +++ src/main/webapp/index.jsp | 5 +++ 9 files changed, 166 insertions(+) create mode 100644 .gitignore create mode 100644 pom.xml create mode 100644 src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java create mode 100644 src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java create mode 100644 src/main/java/com/ifan112/demo/swmvc/api/TestController.java create mode 100644 src/main/java/com/ifan112/demo/swmvc/service/OrderService.java create mode 100644 src/main/java/com/ifan112/demo/swmvc/service/impl/OrderServiceImpl.java create mode 100644 src/main/webapp/WEB-INF/web.xml create mode 100644 src/main/webapp/index.jsp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4c6d574 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# mvn +target/ + +# idea +.idea/ +*.iml \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..c551d83 --- /dev/null +++ b/pom.xml @@ -0,0 +1,44 @@ + + + + 4.0.0 + + com.ifan112.demo + demo-spring-webmvc + 1.0-SNAPSHOT + war + + demo-spring-webmvc Maven Webapp + + + UTF-8 + 1.8 + 1.8 + + + + + + javax.servlet + javax.servlet-api + 3.1.0 + provided + + + + org.springframework + spring-webmvc + 5.1.0.RELEASE + + + + junit + junit + 4.12 + test + + + + + diff --git a/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java b/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java new file mode 100644 index 0000000..8eb0eea --- /dev/null +++ b/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java @@ -0,0 +1,11 @@ +package com.ifan112.demo.swmvc; + +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; + +@Configuration +@EnableWebMvc +@ComponentScan(basePackages = "com.ifan112.demo.swmvc") +public class DemoSpringWebMvcApplicationConfiguration { +} diff --git a/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java b/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java new file mode 100644 index 0000000..ec82016 --- /dev/null +++ b/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java @@ -0,0 +1,45 @@ +package com.ifan112.demo.swmvc; + +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; +import org.springframework.web.servlet.DispatcherServlet; + +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; +import javax.servlet.ServletRegistration; +import javax.servlet.annotation.WebListener; + +@WebListener +public class DemoSpringWebMvcApplicationInitializer implements ServletContextListener { + + /** + * spring容器 + */ + private AnnotationConfigWebApplicationContext springContext; + + @Override + public void contextInitialized(ServletContextEvent sce) { + ServletContext servletContext = sce.getServletContext(); + + // 初始化一个基于java注解的Web应用类型的spring容器 + springContext = new AnnotationConfigWebApplicationContext(); + // 向spring容器注册配置类,spring将解析该类上的注解,然后对容器进行配置 + springContext.register(DemoSpringWebMvcApplicationConfiguration.class); + // 设置spring容器运行时所在的servlet容器 + springContext.setServletContext(servletContext); + + // 注册dispatcherServlet到Servlet容器中。此后,该servlet将会接收和分发所有请求 + ServletRegistration.Dynamic dispatcherServlet + = servletContext.addServlet("dispatcherServlet", new DispatcherServlet(springContext)); + dispatcherServlet.setLoadOnStartup(1); + dispatcherServlet.addMapping("/"); + } + + @Override + public void contextDestroyed(ServletContextEvent sce) { + if (springContext != null) { + // 关闭spring容器 + springContext.close(); + } + } +} diff --git a/src/main/java/com/ifan112/demo/swmvc/api/TestController.java b/src/main/java/com/ifan112/demo/swmvc/api/TestController.java new file mode 100644 index 0000000..4e5891e --- /dev/null +++ b/src/main/java/com/ifan112/demo/swmvc/api/TestController.java @@ -0,0 +1,25 @@ +package com.ifan112.demo.swmvc.api; + +import com.ifan112.demo.swmvc.service.OrderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/test") +public class TestController { + + @Autowired + private OrderService orderService; + + @GetMapping("/a") + public String a(@RequestParam String username, + @RequestParam long goodId) { + orderService.newOrder(username, goodId); + + return "test-a"; + } + +} diff --git a/src/main/java/com/ifan112/demo/swmvc/service/OrderService.java b/src/main/java/com/ifan112/demo/swmvc/service/OrderService.java new file mode 100644 index 0000000..64f9a04 --- /dev/null +++ b/src/main/java/com/ifan112/demo/swmvc/service/OrderService.java @@ -0,0 +1,6 @@ +package com.ifan112.demo.swmvc.service; + +public interface OrderService { + + boolean newOrder(String username, long goodId); +} diff --git a/src/main/java/com/ifan112/demo/swmvc/service/impl/OrderServiceImpl.java b/src/main/java/com/ifan112/demo/swmvc/service/impl/OrderServiceImpl.java new file mode 100644 index 0000000..77012a2 --- /dev/null +++ b/src/main/java/com/ifan112/demo/swmvc/service/impl/OrderServiceImpl.java @@ -0,0 +1,17 @@ +package com.ifan112.demo.swmvc.service.impl; + +import com.ifan112.demo.swmvc.service.OrderService; +import org.springframework.stereotype.Service; + +@Service +public class OrderServiceImpl implements OrderService { + + @Override + public boolean newOrder(String username, long goodId) { + System.out.println("---------- 创建新订单 ----------"); + System.out.println(username + " | " + goodId); + System.out.println("-------------------------------"); + + return true; + } +} diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..f70f3c6 --- /dev/null +++ b/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,7 @@ + + + + Archetype Created Web Application + diff --git a/src/main/webapp/index.jsp b/src/main/webapp/index.jsp new file mode 100644 index 0000000..c38169b --- /dev/null +++ b/src/main/webapp/index.jsp @@ -0,0 +1,5 @@ + +
+

Hello World!

+

AltStyle によって変換されたページ (->オリジナル) /

+ From 875de51da52c876484e6f8fd47c5adf5b96456ce Mon Sep 17 00:00:00 2001 From: ifan112 Date: 2019年2月22日 16:01:41 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=9F=BA?= =?UTF-8?q?=E4=BA=8Exml=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6=E7=9A=84spring?= =?UTF-8?q?-webmvc=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...oSpringWebMvcApplicationConfiguration.java | 11 ----- ...emoSpringWebMvcApplicationInitializer.java | 45 ------------------- .../WEB-INF/dispatcherServlet-servlet.xml | 14 ++++++ src/main/webapp/WEB-INF/web.xml | 11 +++++ 4 files changed, 25 insertions(+), 56 deletions(-) delete mode 100644 src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java delete mode 100644 src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java create mode 100644 src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml diff --git a/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java b/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java deleted file mode 100644 index 8eb0eea..0000000 --- a/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationConfiguration.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.ifan112.demo.swmvc; - -import org.springframework.context.annotation.ComponentScan; -import org.springframework.context.annotation.Configuration; -import org.springframework.web.servlet.config.annotation.EnableWebMvc; - -@Configuration -@EnableWebMvc -@ComponentScan(basePackages = "com.ifan112.demo.swmvc") -public class DemoSpringWebMvcApplicationConfiguration { -} diff --git a/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java b/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java deleted file mode 100644 index ec82016..0000000 --- a/src/main/java/com/ifan112/demo/swmvc/DemoSpringWebMvcApplicationInitializer.java +++ /dev/null @@ -1,45 +0,0 @@ -package com.ifan112.demo.swmvc; - -import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; -import org.springframework.web.servlet.DispatcherServlet; - -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; -import javax.servlet.ServletContextListener; -import javax.servlet.ServletRegistration; -import javax.servlet.annotation.WebListener; - -@WebListener -public class DemoSpringWebMvcApplicationInitializer implements ServletContextListener { - - /** - * spring容器 - */ - private AnnotationConfigWebApplicationContext springContext; - - @Override - public void contextInitialized(ServletContextEvent sce) { - ServletContext servletContext = sce.getServletContext(); - - // 初始化一个基于java注解的Web应用类型的spring容器 - springContext = new AnnotationConfigWebApplicationContext(); - // 向spring容器注册配置类,spring将解析该类上的注解,然后对容器进行配置 - springContext.register(DemoSpringWebMvcApplicationConfiguration.class); - // 设置spring容器运行时所在的servlet容器 - springContext.setServletContext(servletContext); - - // 注册dispatcherServlet到Servlet容器中。此后,该servlet将会接收和分发所有请求 - ServletRegistration.Dynamic dispatcherServlet - = servletContext.addServlet("dispatcherServlet", new DispatcherServlet(springContext)); - dispatcherServlet.setLoadOnStartup(1); - dispatcherServlet.addMapping("/"); - } - - @Override - public void contextDestroyed(ServletContextEvent sce) { - if (springContext != null) { - // 关闭spring容器 - springContext.close(); - } - } -} diff --git a/src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml b/src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml new file mode 100644 index 0000000..d20eac2 --- /dev/null +++ b/src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml @@ -0,0 +1,14 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index f70f3c6..1cebab2 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -4,4 +4,15 @@ Archetype Created Web Application + + + dispatcherServlet + org.springframework.web.servlet.DispatcherServlet + 1 + + + + dispatcherServlet + / + From 4181ac6a367283302ddd9a118e168bf19b41a1aa Mon Sep 17 00:00:00 2001 From: ifan112 Date: 2019年2月22日 17:18:22 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml b/src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml index d20eac2..2ee59bf 100644 --- a/src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml +++ b/src/main/webapp/WEB-INF/dispatcherServlet-servlet.xml @@ -7,8 +7,10 @@ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> + + \ No newline at end of file