当然写本文的目的不是为了速度,只是表明现在构建一个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; } }
具体就不多介绍了,请参考:《Spring4新特性——Web开发的增强》和《跟我学SpringMVC 》。
SpringMVC注解风格配置
@Configuration @EnableWebMvc @ComponentScan public class AppConfig { }
具体含义请参考《Spring4新特性——Groovy Bean定义DSL》部分。
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("/"); } }
具体含义请参考《跟我学Spring3》的第12章 和《Spring4新特性——Groovy Bean定义DSL》和我的github中的《servlet3-showcase》部分。
然后运行 mvn jetty:run运行即可,浏览器输入如下地址即可得到我们的json数据。
http://localhost:9080/springmvc/user/1
参考示例的github地址:springmvc-rest-helloworld
非常简单的一个Rest风格的web应用就搭建完了,接下来再完善即可。
下一篇将介绍使用Spring Boot 2分钟构建spring mvc REST风格HelloWorld。
相关推荐
**Spring Boot概述** Spring Boot是由...总结来说,Spring Boot通过简化配置和集成Spring MVC,使得我们能在短短的几分钟内构建出一个RESTful Web服务。这个服务可以作为一个基础,进一步扩展成复杂的应用系统。
Spring3MVC-REST-HelloWorld 是一个基础的示例,用于展示如何在Spring框架的MVC模块中实现RESTful Web服务。这个实例是初学者理解Spring MVC与REST结合使用的理想起点。REST(Representational State Transfer)是一...
在IT行业中,Spring MVC是一个广泛使用的Java框架,用于构建Web应用程序,特别是对于处理HTTP请求和响应。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,它基于HTTP协议,实现了...
### Spring Web MVC 框架核心知识点解析 #### 一、Spring Web MVC 概述 - **Spring Web MVC** 是...通过上述内容的学习,可以全面掌握Spring Web MVC框架的核心开发知识,为构建高质量的Web应用程序打下坚实的基础。
Spring MVC是Spring框架的核心组成部分,专为构建高性能、模块化的Web应用程序而设计。其主要目标是提供一个灵活的架构,允许开发者以高度自定义的方式组织应用的各个逻辑和功能。Spring MVC的灵活性使得它可以轻松...
【标题】"Json website HelloWorld" 是一个以JSON数据格式为基础,使用Spring REST框架构建的简单Web应用程序示例。这个项目的核心目标是展示如何通过HTTP请求处理JSON数据,并以JSON响应返回,实现“Hello, World!...
Spring 3.0 MVC 是一个强大的、基于 Java 的框架,用于构建可维护和可扩展的 web 应用程序。在这个版本中,Spring 引入了 REST(Representational State Transfer)风格的编程,使得开发者可以更方便地使用注解来...
2. 无缝整合到 Spring 框架:Spring 3 的 REST 支持被无缝整合到 MVC 层中,可以很容易地应用到使用 Spring 构建的应用中。 3. 支持多种 MIME 类型表示:Spring 3 的 REST 支持可以支持多种 MIME 类型表示,例如 XML...
在本文中,我们将深入探讨基于WebFlux的“HelloWorld”示例,这是一个使用Java和Spring框架构建的响应式Web应用程序。WebFlux是Spring Framework 5中引入的一个新特性,它提供了非阻塞和反应式的Web编程模型,旨在...
选择"Web"作为起步依赖,因为它包含了Spring Web MVC,这是构建RESTful服务的关键组件。 项目生成后,主要的结构会包括`src/main/java`和`src/main/resources`目录。在`src/main/java`下,你会看到一个主应用类,...
spring4-mvc-docker-hello-world Spring Mvc 4 Docker Hello世界示例,带有jsp视图和rest控制器以及自动装配服务。 乌尔 运行IT测试 mvn clean verify 作者 Juan EnriqueAlcázarSolomando-初期工作 执照 此项目...
在本项目中,“HelloWorld Restfull”意味着我们将构建一个基础的示例应用,它不仅会展示如何设置和运行 SpringMVC 项目,还会涉及到 RESTful 风格的 API 设计。 1. **SpringMVC 概述** - MVC 模式:将应用程序...
本节中的例子将演示Spring 3环境的创建过程,并创建一个可以部署到Tomcat中的“Hello World”应用。然后我们再完成一个更复杂的应用来了解Spring 3 REST支持的重要概念,如多种MIME类型表示支持和JAXB支持。另外,...
Java是编程语言,Spring Boot是构建在这个语言上的框架,而“helloworld”则暗示了这是一个基础的教学示例,用来展示如何使用Spring Boot来开发简单的Java应用。 至于压缩包中的文件“helloworld-1”,根据命名习惯...
"hello-world-rest:Springboot Hello World REST服务"是一个典型的入门级项目,它展示了如何使用Spring Boot创建一个简单的RESTful Web服务。REST(Representational State Transfer)是一种架构风格,常用于构建Web...
在IT行业中,Spring MVC是一个广泛使用的Java Web框架,它提供了构建高效、灵活和模块化的Web应用程序的能力。在处理RESTful API时,Spring MVC扮演着核心角色。本篇将深入探讨"springmvc-restful"主题,特别是关于...
在这个"spring 小项目"中,你可能正在经历从零开始构建一个基于Spring Boot的应用程序的过程,包括设置基础环境、编写 HelloWorld 示例以及解决遇到的小问题。 首先,让我们深入了解一下Spring Boot的核心特点: 1...
在本文中,我们将深入探讨如何使用SpringBoot框架与Jersey集成来实现RESTful Web服务,并同时整合Spring MVC。SpringBoot以其简洁的配置和快速的开发能力受到广大开发者的喜爱,而Jersey作为JAX-RS规范的实现,是...
在本教程中,我们将深入探讨如何使用Spring Boot创建一个简单的"Hello World" RESTful Web服务。Spring Boot是Java生态系统中的一个流行框架,它简化了设置和配置过程,使得开发人员可以快速启动和运行应用程序。 ...
Spring REST 是Spring框架的一部分,它提供了构建RESTful Web服务的能力。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,能够使客户端和服务器之间的交互变得更加...