Spring Boot Integration Tutorial
- Spring Boot Introduction
- Spring Boot development environment to build (Eclipse)
- Spring Boot Hello World (restful Interface) Examples
- spring boot connect Mysql
- spring boot configuration druid connection pool mysql
- Integrated spring boot mybatis (1)
- Integrated spring boot mybatis (2) - used to implement paging pagehelper
- Integrated spring boot mybatis (3) - mybatis generator arranged
- Interface package return spring boot value
- input data check spring boot (Validation)
- spring boot rest interface Integrated spring security (1) - the most simple configuration
- Interface integrated spring boot rest spring security (2) - JWT Configuration
- spring boot exception (Exception) Processing
- spring boot environment configuration (Profile) switch
- spring boot redis cache (cache) Integration
Outline
rest will return a variety of data interfaces, if the format of the interface without constraints, is likely to cause confusion.
In a real project, it will typically result in a package type, the package contains the classes http status values, status messages, and the actual data.
Benpian achieve a result wrapper classes.
Class Code Package
Result.java
public class Result implements Serializable {
@SuppressWarnings("unused")
private static final org.slf4j.Logger log = LoggerFactory.getLogger(Result.class);
private static final long serialVersionUID = -1802122468331526708L;
private int status = -1;
private String message = "待处理";
private Map<String, Object> data = new HashMap<String, Object>();
public Result(){}
public Result(int status, String message){
this.status = status;
this.message = message;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Map<String, Object> getData() {
return data;
}
public void setData(Map<String, Object> data) {
this.data = data;
}
public void putData(String key, Object value) {
data.put(key, value);
}
public void removeData(String key) {
data.remove(key);
}
@Override
public String toString() {
return "Result{" +
"status=" + status +
", message='" + message + '\'' +
", data=" + data +
'}';
}
}
Explanation
Code should be easy to understand, mainly three members:
- status - state value, should correspond to the state value (200, 404, etc.) of the HTTP
- messsage - status messages such as "Page Not Found"
- data - is a hashmap, can be placed on the key-value
The following will create a real project to demonstrate the use of Result class package.
Create a project
Create a spring boot project
Open Eclipse, create spring starter project spring boot of the project, select the menu: File > New > Project ...
pop-up dialog box, select: Spring Boot > Spring Starter Project
when configuring dependent, check web
, such as do not know how to create a spring boot project, referring to the tutorial: [spring boot hello world (restful Interface) examples].
Add code
Project increases the file as shown below
Result.java file has been described above.
Control class HelloController.java
HelloController class implements an interface control, for testing the wrapper class:
@RestController
public class HelloController {
@RequestMapping(value="/hello", method = RequestMethod.GET, produces="application/json")
public ResponseEntity<Result> hello(@RequestParam(value="bad", required=false, defaultValue="false") boolean bad) {
// 结果封装类对象
Result res = new Result(200, "ok");
if(bad) {
res.setStatus(400);
res.setMessage("Bad request");
// ResponseEntity是响应实体泛型,通过它可以设置http响应的状态值,此处返回400
return new ResponseEntity<Result>(res, HttpStatus.BAD_REQUEST);
}
// 把结果数据放进封装类
res.putData("words", "Hello world!");
// ResponseEntity是响应实体泛型,通过它可以设置http响应的状态值,此处返回200
return ResponseEntity.ok(res);
}
}
Explanation
We return "Hellow world!" Into the string class returns Result package, a consistent state while the state that the value of the Result of the head in the http response values using ResponseEntity
the set state values.
When requested /hello
, returns 200; request /hello?bad=true
, returns 400.
run
Eclipse on the left, right click on the project root directory pop-up menu, choose: run as -> spring boot app
run the program. Open Postman access interface, results are as follows:
When requested /hello
, returns 200
Request /hello?bad=true
, return 400
to sum up
This paper presents the results wrapper classes for reference in practice.