快速构建一个基于Spring的RESTful Web Service

矫情吗;* 2022-08-21 06:00 291阅读 0赞

http://blog.csdn.net/u010902721/article/details/51203444
不使用IDE工具,通过命令行快速构建一个基于Spring的RESTful Web Service。

需要的工具

1、maven(不会使用的话可以参考http://blog.csdn.net/u010902721/article/details/51203170)
2、文本编辑器。

开始

该工程会接受HTTP GET请求,请求网址是http://localhost:8080/greeting。
然后返回json格式数据{"id":1,"content":"Hello, World!"}
当url中含有参数时,例如http://localhost:8080/greeting?name=User,返回的数据是{"id":1,"content":"Hello, User!"}
在项目根目录下创建子目录结构如下:

  1. └── src
  2. └── main
  3. └── java
  4. └── hello

在项目根目录下新建pom.xml,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <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">
  3. <modelVersion>4.0.0</modelVersion>
  4. <groupId>org.springframework</groupId>
  5. <artifactId>gs-rest-service</artifactId>
  6. <version>0.1.0</version>
  7. <parent>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-parent</artifactId>
  10. <version>1.3.3.RELEASE</version>
  11. </parent>
  12. <dependencies>
  13. <dependency>
  14. <groupId>org.springframework.boot</groupId>
  15. <artifactId>spring-boot-starter-web</artifactId>
  16. </dependency>
  17. </dependencies>
  18. <properties>
  19. <java.version>1.8</java.version>
  20. </properties>
  21. <build>
  22. <plugins>
  23. <plugin>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-maven-plugin</artifactId>
  26. </plugin>
  27. </plugins>
  28. </build>
  29. <repositories>
  30. <repository>
  31. <id>spring-releases</id>
  32. <url>https://repo.spring.io/libs-release</url>
  33. </repository>
  34. </repositories>
  35. <pluginRepositories>
  36. <pluginRepository>
  37. <id>spring-releases</id>
  38. <url>https://repo.spring.io/libs-release</url>
  39. </pluginRepository>
  40. </pluginRepositories>
  41. </project>

新建src/main/java/hello/Greeting.java,代码如下:

  1. package hello;
  2. public class Greeting {
  3. private final long id;
  4. private final String content;
  5. public Greeting(long id, String content) {
  6. this.id = id;
  7. this.content = content;
  8. }
  9. public long getId() {
  10. return id;
  11. }
  12. public String getContent() {
  13. return content;
  14. }
  15. }

新建src/main/java/hello/GreetingController.java,代码如下:

  1. package hello;
  2. import java.util.concurrent.atomic.AtomicLong;
  3. import org.springframework.web.bind.annotation.RequestMapping;
  4. import org.springframework.web.bind.annotation.RequestParam;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. public class GreetingController {
  8. private static final String template = "Hello, %s!";
  9. private final AtomicLong counter = new AtomicLong();
  10. @RequestMapping("/greeting")
  11. public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
  12. return new Greeting(counter.incrementAndGet(),
  13. String.format(template, name));
  14. }
  15. }

新建src/main/java/hello/Application.java, 代码如下:

  1. package hello;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. @SpringBootApplication
  5. public class Application {
  6. public static void main(String[] args) {
  7. SpringApplication.run(Application.class, args);
  8. }
  9. }

命令行转移到项目根目录下,windows下执行以下命令(linux下改一下/):

  1. mvn package
  2. mvn java -jar target/gs-rest-service-0.1.0.jar

打开浏览器输入http://localhost:8080/greeting查看结果。
参考文献:http://spring.io/guides/gs/rest-service/#scratch

发表评论

表情:
评论列表 (有 0 条评论,291人围观)

还没有评论,来说两句吧...

相关阅读