《Spring实战(第4版)》第16章介绍了使用Spring MVC创建REST API的方法,本博文整理了一个简单的例子作为入门,记录下来。
本例子源代码下载地址为:
使用Spring MVC创建REST服务简单例子
一、使用idea创建Maven工程
工程结构图如下所示:
pom.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.wu.demo</groupId>
<artifactId>springrest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<springframework.version>4.3.8.RELEASE</springframework.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
</project>
二、创建User类
public class User {
private Integer id;
private String username;
private String password;
//为节省篇幅,此处省略get/set
}
三、创建UserController
package com.wu.demo.springrest.controller;
import com.wu.demo.springrest.bean.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;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping(value = "/getByUsername/{username}", method = RequestMethod.GET)
public User getByUsername(@PathVariable String username){
User o = new User();
o.setId(1);
o.setUsername(username);
o.setPassword("123456");
return o;
}
@RequestMapping(value = "/list", method = RequestMethod.GET)
public List<User> getByUsername(){
List<User> list = new ArrayList<User>();
User o1 = new User();
o1.setId(1);
o1.setUsername("admin");
o1.setPassword("123456");
User o2 = new User();
o2.setId(2);
o2.setUsername("test");
o2.setPassword("123456");
list.add(o1);
list.add(o2);
return list;
}
}
四、MVC配置类如下:
package com.wu.demo.springrest.conf;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@EnableWebMvc
@ComponentScan(basePackages = {"com.wu.demo.springrest"})
public class MvcConfig extends WebMvcConfigurerAdapter{
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
}
工程主配置类如下:
package com.wu.demo.springrest.conf;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class WebApplicationInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return null;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[] { MvcConfig.class };
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
五、部署测试
部署到Tomcat,然后通过浏览器访问测试如下:
极简配置创建REST服务,更多功能需要更多研究。
本例子源代码下载地址为:
使用Spring MVC创建REST服务简单例子