5分鐘構建基于Spring Web MVC REST風格HelloWorld示例
當然寫本文的目的不是為了速度,只是表明現在構建一個Spring web mvc Rest風格的HelloWorld應用會很簡單。不過如果看過Spring Boot這個項目,可能只需要最多3分鐘就能構建一個簡單的Rest風格應用。回頭研究下,然后分享下。
我的構建環境
JDK 7
Maven 3
Servlet3容器
創建項目
首先使用Maven創建一個普通Maven應用即可,不必是web的。
添加依賴
<!-- servlet 3 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</version> </dependency> <!--spring context --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.0.0.RELEASE</version> </dependency> <!--spring webmvc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.0.0.RELEASE</version> </dependency> <!--jackson --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.2.3</version> </dependency>
servlet3依賴scope是provided表示環境提供,然后添加spring-context-support和spring-webmvc依賴,最后用于json的jackson依賴。非常簡單明了。
添加maven插件
為了方便測試,添加jetty的maven插件,這樣直接使用mvn jetty:run即可運行。
<build> <finalName>springmvc</finalName> <plugins> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>8.1.8.v20121106</version> <configuration> <reload>manual</reload> <webAppConfig> <contextPath>/${project.build.finalName}</contextPath> </webAppConfig> <connectors> <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector"> <port>9080</port> <!--<maxIdleTime>60000</maxIdleTime>--> </connector> </connectors> </configuration> </plugin> </plugins> </build>
實體
package com.sishuok.entity; import java.io.Serializable; /** * <p>User: Zhang Kaitao * <p>Date: 13-12-19 * <p>Version: 1.0 */ public class User implements Serializable { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; User user = (User) o; if (id != null ? !id.equals(user.id) : user.id != null) return false; return true; } @Override public int hashCode() { return id != null ? id.hashCode() : 0; } }
控制器
package com.sishuok.controller; import com.sishuok.entity.User; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; /** * <p>User: Zhang Kaitao * <p>Date: 13-12-19 * <p>Version: 1.0 */ @RestController @RequestMapping("/user") public class UserController { @RequestMapping(value = "/{id}", method = RequestMethod.GET) public User view(@PathVariable("id") Long id) { User user = new User(); user.setId(id); user.setName("zhang"); return user; } }
SpringMVC注解風格配置
@Configuration @EnableWebMvc @ComponentScan public class AppConfig { }
Servlet3容器啟動初始化器
在Servlet容器啟動時編程式注冊Servlet
package com.sishuok; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration; /** * <p>User: Zhang Kaitao * <p>Date: 13-12-19 * <p>Version: 1.0 */ public class AppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext servletContext) throws ServletException { AnnotationConfigWebApplicationContext webApplicationContext = new AnnotationConfigWebApplicationContext(); webApplicationContext.register(AppConfig.class); DispatcherServlet dispatcherServlet = new DispatcherServlet(webApplicationContext); ServletRegistration.Dynamic dynamic = servletContext.addServlet("dispatcherServlet", dispatcherServlet); dynamic.addMapping("/"); } }
然后運行 mvn jetty:run運行即可,瀏覽器輸入如下地址即可得到我們的json數據。
http://localhost:9080/springmvc/user/1
參考示例的github地址:springmvc-rest-helloworld
非常簡單的一個Rest風格的web應用就搭建完了,接下來再完善即可。
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!