SpringBoot 之 Building a RESTful Web Service
使用SpingBoot 来搭建restful web service 是一件非常简单的事情。下面来看看如何搭建一个简单的restful web servece .下载官方demo https://github.com/spring-guides/gs-rest-service.git此项目是maven 和gradle 构建 本地需要安装maven 环境 或者gradle 环境。cd
使用SpingBoot 来搭建restful web service 是一件非常简单的事情。下面来看看如何搭建一个简单的restful web servece .
下载官方demo https://github.com/spring-guides/gs-rest-service.git
此项目是maven 和gradle 构建 本地需要安装maven 环境 或者gradle 环境。
cd into gs-rest-service/initial
创建一个资源 Greeting 类 如下:
src/main/java/hello/Greeting.java
package hello;
public class Greeting {
private final long id;
private final String content;
public Greeting(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
创建一个 资源控制器
src/main/java/hello/GreetingController.java
package hello;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
@RestController 表示会返回数据的Controller 等同于 @Controller + @ResponseBody
@RequestMapping 将请求路径映射到方法
@RequestParam 请求参数绑定 value 是参数名 defaultValue 默认值
Greeting方法返回了 一个Greeting 对象, 该对象通过MappingJackson2HttpMessageConverter
会自动
转成成json 格式的数据返回
创建一个应用执行类 Application
src/main/java/hello/Application.java
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication 它是一个便利的注解,它是由以下几个注解组成
@Configuration 定义应用的上下文
@EnableAutoConfiguration 启用自动配置:告诉Spring Boot 启动时添加classpath 下的beans,其它
beans,和属性设置。
@@EnableWebMvc SpringMVC 组件
@ComponentScan 告诉spring 去 hello 包下查找组件,配置,和其他服务。以便发现GreetingController .
在main 方法中使用SpringApplicaiton.run(),启动应用。没有xml,也没有web.xml,它是100%纯java web 应用,不需要管理配置。
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>org.springframework</groupId>
<artifactId>gs-rest-service</artifactId>
<version>0.1.0</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
</project>
gradle 配置
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.1.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'spring-boot'
jar {
baseName = 'gs-rest-service'
version = '0.1.0'
}
repositories {
mavenCentral()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile("org.springframework.boot:spring-boot-starter-web")
testCompile('org.springframework.boot:spring-boot-starter-test')
}
点击运行main 方法 ,默认端口为8080
在浏览器中输入
http://localhost:8080/greeting
即可。看到
{"id":1,"content":"Hello, World!"}
打 jar 包
命令行方式
maven 方式 : ./mvnw clean package
.
gradle 方式: ./gradlew build
原文 :https://spring.io/guides/gs/rest-service/
###
作者备注:实际开发中可以使用IDE maven 插件 或gradle打包。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)