1. maven依赖
能用ide的用ide,或者用spring的命令行生成项目文件。
1 2 3 4
| <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency>
|
2. 定义对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 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; } }
|
3. 定义controller
GreetingController.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 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)); } }
|
@RequestMapping 映射url地址,RequestMapping里面可以定义http方法@RequestMapping(method=GET).
RequestParam解析请求参数。
这里用了个String.format,套一个模板,还有就是id用了AtomicLong 原子对象。返回一个Greeting对象,spring boot自动配置生成json格式,里面的原理是data-rest依赖里面有com.jayway.jsonpath:json-path的依赖,spring的 MappingJackson2HttpMessageConverter自动将Greeting对象转成JSON了。
再详细了解一下@SpringBootApplication注解,其实他有3个注解组成
- Configuration 表明是个java配置类。
- EnableAutoConfiguration 打开springboot自动配置。
- ComponentScan 组件扫描。
4. run
运行访问得到结果:
1 2 3 4 5
| http://localhost:8080/greeting {"id":1,"content":"Hello, World!"} http://localhost:8080/greeting?name=User {"id":2,"content":"Hello, User!"}
|