From cf05c914ef29a648251733c7f78e6e9c75d32883 Mon Sep 17 00:00:00 2001 From: hmkcode Date: Thu, 11 Sep 2014 23:34:36 +0300 Subject: [PATCH 1/6] spring root context spring root context --- .../.classpath | 22 ++++++ spring-mvc-root-webapplicationcontext/pom.xml | 78 +++++++++++++++++++ .../com/hmkcode/spring/beans/RootBean.java | 11 +++ .../spring/controllers/MyController.java | 35 +++++++++ .../src/main/webapp/WEB-INF/rest-servlet.xml | 17 ++++ .../src/main/webapp/WEB-INF/root-context.xml | 17 ++++ .../src/main/webapp/WEB-INF/web.xml | 27 +++++++ .../src/main/webapp/index.html | 13 ++++ .../test/java/com/hmkcode/spring/AppTest.java | 38 +++++++++ 9 files changed, 258 insertions(+) create mode 100644 spring-mvc-root-webapplicationcontext/.classpath create mode 100644 spring-mvc-root-webapplicationcontext/pom.xml create mode 100644 spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/beans/RootBean.java create mode 100644 spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/controllers/MyController.java create mode 100644 spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/rest-servlet.xml create mode 100644 spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/root-context.xml create mode 100644 spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-mvc-root-webapplicationcontext/src/main/webapp/index.html create mode 100644 spring-mvc-root-webapplicationcontext/src/test/java/com/hmkcode/spring/AppTest.java diff --git a/spring-mvc-root-webapplicationcontext/.classpath b/spring-mvc-root-webapplicationcontext/.classpath new file mode 100644 index 0000000..9aecea7 --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/.classpath @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc-root-webapplicationcontext/pom.xml b/spring-mvc-root-webapplicationcontext/pom.xml new file mode 100644 index 0000000..d9f250c --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/pom.xml @@ -0,0 +1,78 @@ + + 4.0.0 + + com.hmkcode + spring-mvc-root-webapplicationcontext + 1.0-SNAPSHOT + jar + + spring-mvc-root-webapplicationcontext + http://maven.apache.org + + + 4.0.0.RELEASE + 4.11 + + + + + org.springframework + spring-core + ${spring.version} + + + org.springframework + spring-web + ${spring.version} + + + org.springframework + spring-webmvc + ${spring.version} + + + javax.servlet + servlet-api + 2.5 + + + org.codehaus.jackson + jackson-mapper-asl + 1.9.12 + + + org.codehaus.jackson + jackson-core-asl + 1.9.12 + + + + junit + junit + ${junit.version} + test + + + + + spring-mvc-regex + + + org.eclipse.jetty + jetty-maven-plugin + 9.2.2.v20140723 + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + + + + + diff --git a/spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/beans/RootBean.java b/spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/beans/RootBean.java new file mode 100644 index 0000000..a413af3 --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/beans/RootBean.java @@ -0,0 +1,11 @@ +package com.hmkcode.spring.beans; + +public class RootBean { + + @Override + public String toString() { + return "RootBean"; + } + + +} diff --git a/spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/controllers/MyController.java b/spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/controllers/MyController.java new file mode 100644 index 0000000..9b47555 --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/src/main/java/com/hmkcode/spring/controllers/MyController.java @@ -0,0 +1,35 @@ +package com.hmkcode.spring.controllers; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; + +import com.hmkcode.spring.beans.RootBean; + + + +@Controller +@RequestMapping("/controller") +public class MyController { + + public MyController(){ + System.out.println("new Controller"); + } + + @Autowired + ApplicationContext context; + + @RequestMapping(value = "/get", method = RequestMethod.GET) + public @ResponseBody String get() { + + RootBean rootBean = (RootBean) context.getBean("rootBean"); + System.out.println(rootBean); + + return rootBean.toString(); + } + +} + diff --git a/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/rest-servlet.xml b/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/rest-servlet.xml new file mode 100644 index 0000000..6383bc9 --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/rest-servlet.xml @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/root-context.xml b/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/root-context.xml new file mode 100644 index 0000000..5e955b3 --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/root-context.xml @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/web.xml b/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..4f07c65 --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,27 @@ + + + SpringMVC + + index.html + + + + + contextConfigLocation + /WEB-INF/root-context.xml + + + org.springframework.web.context.ContextLoaderListener + + + + + rest + org.springframework.web.servlet.DispatcherServlet + + + + rest + /rest/* + + \ No newline at end of file diff --git a/spring-mvc-root-webapplicationcontext/src/main/webapp/index.html b/spring-mvc-root-webapplicationcontext/src/main/webapp/index.html new file mode 100644 index 0000000..9f68377 --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/src/main/webapp/index.html @@ -0,0 +1,13 @@ + + + + +Root Context + + + + + + Call Controller + + \ No newline at end of file diff --git a/spring-mvc-root-webapplicationcontext/src/test/java/com/hmkcode/spring/AppTest.java b/spring-mvc-root-webapplicationcontext/src/test/java/com/hmkcode/spring/AppTest.java new file mode 100644 index 0000000..88bdb1e --- /dev/null +++ b/spring-mvc-root-webapplicationcontext/src/test/java/com/hmkcode/spring/AppTest.java @@ -0,0 +1,38 @@ +package com.hmkcode.spring; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} From 96c3eab3aef6a3d0c60c14b85cb28f47abdb510a Mon Sep 17 00:00:00 2001 From: "Hani M. K" Date: Wed, 21 Feb 2018 21:18:48 +0300 Subject: [PATCH 2/6] spring mvc excel view resolver spring mvc excel view resolver --- spring-mvc-excel-view/README.md | 5 + spring-mvc-excel-view/pom.xml | 97 +++++++++++++++++++ .../com/hmkcode/controllers/Controller.java | 28 ++++++ .../src/main/java/com/hmkcode/model/Link.java | 32 ++++++ .../java/com/hmkcode/view/ExcelXlsxView.java | 42 ++++++++ .../src/main/webapp/WEB-INF/rest-servlet.xml | 23 +++++ .../src/main/webapp/WEB-INF/views.xml | 9 ++ .../src/main/webapp/WEB-INF/web.xml | 25 +++++ .../src/main/webapp/index.html | 11 +++ 9 files changed, 272 insertions(+) create mode 100644 spring-mvc-excel-view/README.md create mode 100644 spring-mvc-excel-view/pom.xml create mode 100644 spring-mvc-excel-view/src/main/java/com/hmkcode/controllers/Controller.java create mode 100644 spring-mvc-excel-view/src/main/java/com/hmkcode/model/Link.java create mode 100644 spring-mvc-excel-view/src/main/java/com/hmkcode/view/ExcelXlsxView.java create mode 100644 spring-mvc-excel-view/src/main/webapp/WEB-INF/rest-servlet.xml create mode 100644 spring-mvc-excel-view/src/main/webapp/WEB-INF/views.xml create mode 100644 spring-mvc-excel-view/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-mvc-excel-view/src/main/webapp/index.html diff --git a/spring-mvc-excel-view/README.md b/spring-mvc-excel-view/README.md new file mode 100644 index 0000000..79d023d --- /dev/null +++ b/spring-mvc-excel-view/README.md @@ -0,0 +1,5 @@ +Spring MVC | Excel View Resolver +================================ + + +Spring MVC can render retrieved data into views of different format such as PDF, JSP or Excel. Spring framework view resolvers e.g. InternalResourceViewResolver, XmlViewResolver, ResourceBundleViewResolver and a few others enable you to render model into views. This post shows you how to render model into Excel view using XmlViewResolver. diff --git a/spring-mvc-excel-view/pom.xml b/spring-mvc-excel-view/pom.xml new file mode 100644 index 0000000..2c7f2c8 --- /dev/null +++ b/spring-mvc-excel-view/pom.xml @@ -0,0 +1,97 @@ + + 4.0.0 + + com.hmkcode + spring-mvc-excel-view + 1.0-SNAPSHOT + war + + spring-mvc-excel-view + http://maven.apache.org + + + UTF-8 + 4.3.14.RELEASE + 3.17 + + + + + + + + org.springframework + spring-context + ${spring.version} + + + + org.springframework + spring-core + ${spring.version} + + + + org.springframework + spring-beans + ${spring.version} + + + + org.springframework + spring-web + ${spring.version} + + + + org.springframework + spring-webmvc + ${spring.version} + + + + org.springframework + spring-expression + ${spring.version} + + + + + commons-logging + commons-logging + 1.2 + + + + + org.apache.poi + poi + ${poi.version} + + + org.apache.poi + poi-ooxml + ${poi.version} + + + + javax.servlet + javax.servlet-api + 4.0.0 + provided + + + + + + + + + org.eclipse.jetty + jetty-maven-plugin + 9.4.8.v20171121 + + + + diff --git a/spring-mvc-excel-view/src/main/java/com/hmkcode/controllers/Controller.java b/spring-mvc-excel-view/src/main/java/com/hmkcode/controllers/Controller.java new file mode 100644 index 0000000..1a5c76c --- /dev/null +++ b/spring-mvc-excel-view/src/main/java/com/hmkcode/controllers/Controller.java @@ -0,0 +1,28 @@ +package com.hmkcode.controllers; + +import java.util.LinkedList; +import java.util.List; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import com.hmkcode.model.Link; + +@RestController +public class Controller { + + @RequestMapping(value = "/viewExcel", method = RequestMethod.GET) + public ModelAndView getExcel(){ + System.out.println("getExcel!"); + + List links = new LinkedList(); + links.add(new Link("Android", "android.com")); + links.add(new Link("Spring", "spring.io")); + links.add(new Link("Firebase", "firebase.com")); + + return new ModelAndView("ExcelXlsxView", "model", links); + } + +} diff --git a/spring-mvc-excel-view/src/main/java/com/hmkcode/model/Link.java b/spring-mvc-excel-view/src/main/java/com/hmkcode/model/Link.java new file mode 100644 index 0000000..4e7755b --- /dev/null +++ b/spring-mvc-excel-view/src/main/java/com/hmkcode/model/Link.java @@ -0,0 +1,32 @@ +package com.hmkcode.model; + +public class Link { + + private String title; + private String url; + + public Link(String title, String url){ + this.title = title; + this.url = url; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + @Override + public String toString() { + return "Link [title=" + title + ", url=" + url + "]"; + } + + + + +} diff --git a/spring-mvc-excel-view/src/main/java/com/hmkcode/view/ExcelXlsxView.java b/spring-mvc-excel-view/src/main/java/com/hmkcode/view/ExcelXlsxView.java new file mode 100644 index 0000000..335bb0e --- /dev/null +++ b/spring-mvc-excel-view/src/main/java/com/hmkcode/view/ExcelXlsxView.java @@ -0,0 +1,42 @@ +package com.hmkcode.view; + +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.web.servlet.view.document.AbstractXlsxView; + +import com.hmkcode.model.Link; + +public class ExcelXlsxView extends AbstractXlsxView { + + @Override + protected void buildExcelDocument(Map model, + Workbook workbook, + HttpServletRequest request, + HttpServletResponse response) throws Exception { + + @SuppressWarnings("unchecked") + List links = (List) model.get("model"); + + // create a new Excel sheet + Sheet sheet = workbook.createSheet("Sheet"); + + int i = 0; + Row row = null; + for(Link link:links){ + row = sheet.createRow(i++); + row.createCell(0).setCellValue(link.getTitle()); + row.createCell(1).setCellValue(link.getUrl()); + } + + + + } + +} diff --git a/spring-mvc-excel-view/src/main/webapp/WEB-INF/rest-servlet.xml b/spring-mvc-excel-view/src/main/webapp/WEB-INF/rest-servlet.xml new file mode 100644 index 0000000..38e2d35 --- /dev/null +++ b/spring-mvc-excel-view/src/main/webapp/WEB-INF/rest-servlet.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + diff --git a/spring-mvc-excel-view/src/main/webapp/WEB-INF/views.xml b/spring-mvc-excel-view/src/main/webapp/WEB-INF/views.xml new file mode 100644 index 0000000..52a9578 --- /dev/null +++ b/spring-mvc-excel-view/src/main/webapp/WEB-INF/views.xml @@ -0,0 +1,9 @@ + + + + + + \ No newline at end of file diff --git a/spring-mvc-excel-view/src/main/webapp/WEB-INF/web.xml b/spring-mvc-excel-view/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..a3148c4 --- /dev/null +++ b/spring-mvc-excel-view/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,25 @@ + + + SPRING MVC + + index.html + + + + + rest + org.springframework.web.servlet.DispatcherServlet + + + rest + /rest/* + + + + + + \ No newline at end of file diff --git a/spring-mvc-excel-view/src/main/webapp/index.html b/spring-mvc-excel-view/src/main/webapp/index.html new file mode 100644 index 0000000..02acce6 --- /dev/null +++ b/spring-mvc-excel-view/src/main/webapp/index.html @@ -0,0 +1,11 @@ + + + + +Excel View Resolver + + +

Spring MVC | Excel View Resolver

+View Excel + + \ No newline at end of file From cbe9c26249c501db9004649ec795d95bfc6bf799 Mon Sep 17 00:00:00 2001 From: "Hani M. K" Date: Wed, 21 Feb 2018 21:21:28 +0300 Subject: [PATCH 3/6] update readme --- spring-mvc-excel-view/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-mvc-excel-view/README.md b/spring-mvc-excel-view/README.md index 79d023d..2397dc6 100644 --- a/spring-mvc-excel-view/README.md +++ b/spring-mvc-excel-view/README.md @@ -2,4 +2,4 @@ Spring MVC | Excel View Resolver ================================ -Spring MVC can render retrieved data into views of different format such as PDF, JSP or Excel. Spring framework view resolvers e.g. InternalResourceViewResolver, XmlViewResolver, ResourceBundleViewResolver and a few others enable you to render model into views. This post shows you how to render model into Excel view using XmlViewResolver. +Spring MVC can render retrieved data into views of different format such as PDF, JSP or Excel. Spring framework view resolvers e.g. `InternalResourceViewResolver`, `XmlViewResolver`, `ResourceBundleViewResolver` and a few others enable you to render model into views. This post shows you how to render model into Excel view using XmlViewResolver. From 343322168e463a0fab656270313c1c589619aaf3 Mon Sep 17 00:00:00 2001 From: "Hani M. K" Date: Sun, 5 Aug 2018 21:52:41 +0300 Subject: [PATCH 4/6] spring mvc test spring mvc test --- spring-mvc-test/.classpath | 30 +++++ spring-mvc-test/pom.xml | 126 ++++++++++++++++++ .../com/hmkcode/controllers/Controller.java | 27 ++++ .../src/main/java/com/hmkcode/model/Link.java | 31 +++++ .../src/main/webapp/WEB-INF/rest-servlet.xml | 18 +++ .../src/main/webapp/WEB-INF/web.xml | 25 ++++ spring-mvc-test/src/main/webapp/index.html | 11 ++ .../java/com/hmkcode/test/TestController.java | 53 ++++++++ .../src/test/resources/rest-servlet.xml | 19 +++ 9 files changed, 340 insertions(+) create mode 100644 spring-mvc-test/.classpath create mode 100644 spring-mvc-test/pom.xml create mode 100644 spring-mvc-test/src/main/java/com/hmkcode/controllers/Controller.java create mode 100644 spring-mvc-test/src/main/java/com/hmkcode/model/Link.java create mode 100644 spring-mvc-test/src/main/webapp/WEB-INF/rest-servlet.xml create mode 100644 spring-mvc-test/src/main/webapp/WEB-INF/web.xml create mode 100644 spring-mvc-test/src/main/webapp/index.html create mode 100644 spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java create mode 100644 spring-mvc-test/src/test/resources/rest-servlet.xml diff --git a/spring-mvc-test/.classpath b/spring-mvc-test/.classpath new file mode 100644 index 0000000..3003973 --- /dev/null +++ b/spring-mvc-test/.classpath @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-mvc-test/pom.xml b/spring-mvc-test/pom.xml new file mode 100644 index 0000000..f7b699a --- /dev/null +++ b/spring-mvc-test/pom.xml @@ -0,0 +1,126 @@ + + 4.0.0 + + com.hmkcode + spring-mvc-test + 1.0-SNAPSHOT + war + + spring-mvc-test + http://maven.apache.org + + + UTF-8 + 5.0.8.RELEASE + 4.12 + 4.0.1 + 2.9.6 + + + + + + + + org.springframework + spring-context + ${spring.version} + + + + org.springframework + spring-core + ${spring.version} + + + + org.springframework + spring-beans + ${spring.version} + + + + org.springframework + spring-web + ${spring.version} + + + + org.springframework + spring-webmvc + ${spring.version} + + + + org.springframework + spring-expression + ${spring.version} + + + org.springframework + spring-test + ${spring.version} + test + + + + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + + junit + junit + ${junit.version} + test + + + + + commons-logging + commons-logging + 1.2 + + + + + javax.servlet + javax.servlet-api + ${javax.servlet.version} + provided + + + + + org.hamcrest + hamcrest-library + 1.3 + test + + + com.jayway.jsonpath + json-path + 2.2.0 + test + + + + + + + + org.eclipse.jetty + jetty-maven-plugin + 9.4.11.v20180605 + + + + diff --git a/spring-mvc-test/src/main/java/com/hmkcode/controllers/Controller.java b/spring-mvc-test/src/main/java/com/hmkcode/controllers/Controller.java new file mode 100644 index 0000000..710db0f --- /dev/null +++ b/spring-mvc-test/src/main/java/com/hmkcode/controllers/Controller.java @@ -0,0 +1,27 @@ +package com.hmkcode.controllers; + + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import com.hmkcode.model.Link; + +@RestController +@RequestMapping("api") +public class Controller { + + @RequestMapping(value = "/get", method = RequestMethod.GET) + public @ResponseBody Link get(){ + System.out.println("Get!"); + + Link link = new Link(); + link.setTitle("HMKCODE BLOG!"); + link.setUrl("hmkcode.com"); + + return link; + + } + +} diff --git a/spring-mvc-test/src/main/java/com/hmkcode/model/Link.java b/spring-mvc-test/src/main/java/com/hmkcode/model/Link.java new file mode 100644 index 0000000..d3a1548 --- /dev/null +++ b/spring-mvc-test/src/main/java/com/hmkcode/model/Link.java @@ -0,0 +1,31 @@ +package com.hmkcode.model; + +public class Link { + + private String title; + private String url; + + public Link(){ + + } + public Link(String title, String url){ + this.title = title; + this.url = url; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public String getUrl() { + return url; + } + public void setUrl(String url) { + this.url = url; + } + @Override + public String toString() { + return "Link [title=" + title + ", url=" + url + "]"; + } +} diff --git a/spring-mvc-test/src/main/webapp/WEB-INF/rest-servlet.xml b/spring-mvc-test/src/main/webapp/WEB-INF/rest-servlet.xml new file mode 100644 index 0000000..8072b08 --- /dev/null +++ b/spring-mvc-test/src/main/webapp/WEB-INF/rest-servlet.xml @@ -0,0 +1,18 @@ + + + + + + + + + diff --git a/spring-mvc-test/src/main/webapp/WEB-INF/web.xml b/spring-mvc-test/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..a3148c4 --- /dev/null +++ b/spring-mvc-test/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,25 @@ + + + SPRING MVC + + index.html + + + + + rest + org.springframework.web.servlet.DispatcherServlet + + + rest + /rest/* + + + + + + \ No newline at end of file diff --git a/spring-mvc-test/src/main/webapp/index.html b/spring-mvc-test/src/main/webapp/index.html new file mode 100644 index 0000000..c0533a2 --- /dev/null +++ b/spring-mvc-test/src/main/webapp/index.html @@ -0,0 +1,11 @@ + + + + +Spring MVC Test + + +

Spring MVC Test | MockMVC

+GET JSON + + \ No newline at end of file diff --git a/spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java b/spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java new file mode 100644 index 0000000..38922ff --- /dev/null +++ b/spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java @@ -0,0 +1,53 @@ +package com.hmkcode.test; + +import javax.servlet.ServletContext; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Ignore; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockServletContext; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.web.WebAppConfiguration; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +@RunWith(SpringJUnit4ClassRunner.class) +@ContextConfiguration(locations = "/rest-servlet.xml") +@WebAppConfiguration +public class TestController { + + @Autowired + private WebApplicationContext wac; + + private MockMvc mockMvc; + @Before + public void setup() throws Exception { + this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); + } + @Ignore + @Test + public void givenWac_whenServletContext_thenItProvidesGreetController() { + ServletContext servletContext = wac.getServletContext(); + + Assert.assertNotNull(servletContext); + Assert.assertTrue(servletContext instanceof MockServletContext); + Assert.assertNotNull(wac.getBean("controller")); + } + + @Test + public void test() throws Exception{ + this.mockMvc.perform(get("/api/get")) + .andExpect(status().isOk()) + .andDo(print()); + + } +} diff --git a/spring-mvc-test/src/test/resources/rest-servlet.xml b/spring-mvc-test/src/test/resources/rest-servlet.xml new file mode 100644 index 0000000..88698ec --- /dev/null +++ b/spring-mvc-test/src/test/resources/rest-servlet.xml @@ -0,0 +1,19 @@ + + + + + + + + + + From ce2f73f92dcaf4b13ec3b30bfe50bbc30aa17362 Mon Sep 17 00:00:00 2001 From: "Hani M. K" Date: Tue, 14 Aug 2018 21:07:28 +0300 Subject: [PATCH 5/6] update method name update test method name --- .../src/test/java/com/hmkcode/test/TestController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java b/spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java index 38922ff..93a8614 100644 --- a/spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java +++ b/spring-mvc-test/src/test/java/com/hmkcode/test/TestController.java @@ -35,7 +35,7 @@ public void setup() throws Exception { } @Ignore @Test - public void givenWac_whenServletContext_thenItProvidesGreetController() { + public void configTest() { ServletContext servletContext = wac.getServletContext(); Assert.assertNotNull(servletContext); From c13c5146f6211377b2d6fd33de91ae12036d48bd Mon Sep 17 00:00:00 2001 From: "Hani M. K" Date: Sat, 27 Feb 2021 20:29:58 +0300 Subject: [PATCH 6/6] spring-exception-controlleradvice spring-exception-controlleradvice --- spring-exception-controlleradvice/.classpath | 39 ++++++++++++++++ spring-exception-controlleradvice/pom.xml | 45 +++++++++++++++++++ .../src/main/java/com/hmkcode/App.java | 15 +++++++ .../com/hmkcode/controllers/Controller.java | 21 +++++++++ .../hmkcode/exception/ControllerAdvisor.java | 26 +++++++++++ 5 files changed, 146 insertions(+) create mode 100644 spring-exception-controlleradvice/.classpath create mode 100644 spring-exception-controlleradvice/pom.xml create mode 100644 spring-exception-controlleradvice/src/main/java/com/hmkcode/App.java create mode 100644 spring-exception-controlleradvice/src/main/java/com/hmkcode/controllers/Controller.java create mode 100644 spring-exception-controlleradvice/src/main/java/com/hmkcode/exception/ControllerAdvisor.java diff --git a/spring-exception-controlleradvice/.classpath b/spring-exception-controlleradvice/.classpath new file mode 100644 index 0000000..d67f3e2 --- /dev/null +++ b/spring-exception-controlleradvice/.classpath @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-exception-controlleradvice/pom.xml b/spring-exception-controlleradvice/pom.xml new file mode 100644 index 0000000..3086b49 --- /dev/null +++ b/spring-exception-controlleradvice/pom.xml @@ -0,0 +1,45 @@ + + 4.0.0 + + com.hmkcode + spring-exception-controlleradvice + 1.0-SNAPSHOT + jar + + spring-boot + http://maven.apache.org + + + UTF-8 + 1.8 + 1.8 + + + org.springframework.boot + spring-boot-starter-parent + 2.4.2 + + + + + org.springframework.boot + spring-boot-starter-web + + + + + + + + + org.codehaus.mojo + exec-maven-plugin + 3.0.0 + + com.hmkcode.App + + + + + diff --git a/spring-exception-controlleradvice/src/main/java/com/hmkcode/App.java b/spring-exception-controlleradvice/src/main/java/com/hmkcode/App.java new file mode 100644 index 0000000..c977ea6 --- /dev/null +++ b/spring-exception-controlleradvice/src/main/java/com/hmkcode/App.java @@ -0,0 +1,15 @@ +package com.hmkcode; + +import org.springframework.boot.*; +import org.springframework.boot.autoconfigure.*; +import org.springframework.stereotype.*; + +@Controller +@SpringBootApplication +public class App { + + + public static void main(String[] args) throws Exception { + SpringApplication.run(App.class, args); + } +} \ No newline at end of file diff --git a/spring-exception-controlleradvice/src/main/java/com/hmkcode/controllers/Controller.java b/spring-exception-controlleradvice/src/main/java/com/hmkcode/controllers/Controller.java new file mode 100644 index 0000000..f51e398 --- /dev/null +++ b/spring-exception-controlleradvice/src/main/java/com/hmkcode/controllers/Controller.java @@ -0,0 +1,21 @@ +package com.hmkcode.controllers; + +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + + +@RestController +public class Controller { + + + @RequestMapping("/ok") + public @ResponseBody String ok() throws Exception { + return "OK"; + } + + @RequestMapping("/exception") + public @ResponseBody String exception() throws Exception { + throw new Exception("Error"); + } +} diff --git a/spring-exception-controlleradvice/src/main/java/com/hmkcode/exception/ControllerAdvisor.java b/spring-exception-controlleradvice/src/main/java/com/hmkcode/exception/ControllerAdvisor.java new file mode 100644 index 0000000..027ab1f --- /dev/null +++ b/spring-exception-controlleradvice/src/main/java/com/hmkcode/exception/ControllerAdvisor.java @@ -0,0 +1,26 @@ +package com.hmkcode.exception; + + +import javax.servlet.http.HttpServletRequest; + +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.http.HttpStatus; + +@ControllerAdvice +public class ControllerAdvisor { + + + @ExceptionHandler(Exception.class) + @ResponseStatus(HttpStatus.BAD_REQUEST) + + public @ResponseBody String generalException(final Exception exception, + final HttpServletRequest request) { + + return exception.getMessage()+" while calling: "+request.getRequestURI(); + + } +} +