Skip to content

Commit 268dfdf

Browse files
committed
扩展XML请求和响应的支持
1 parent 88d49d7 commit 268dfdf

File tree

5 files changed

+149
-0
lines changed

5 files changed

+149
-0
lines changed

Chapter3-1-8/pom.xml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
6+
<groupId>com.didispace</groupId>
7+
<artifactId>Chapter3-1-8</artifactId>
8+
<version>1.0.0</version>
9+
<packaging>jar</packaging>
10+
11+
<parent>
12+
<groupId>org.springframework.boot</groupId>
13+
<artifactId>spring-boot-starter-parent</artifactId>
14+
<version>1.5.10.RELEASE</version>
15+
<relativePath/> <!-- lookup parent from repository -->
16+
</parent>
17+
18+
<properties>
19+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
20+
<java.version>1.8</java.version>
21+
</properties>
22+
23+
<dependencies>
24+
<dependency>
25+
<groupId>org.springframework.boot</groupId>
26+
<artifactId>spring-boot-starter</artifactId>
27+
</dependency>
28+
29+
<dependency>
30+
<groupId>org.springframework.boot</groupId>
31+
<artifactId>spring-boot-starter-test</artifactId>
32+
<scope>test</scope>
33+
</dependency>
34+
35+
<dependency>
36+
<groupId>org.springframework.boot</groupId>
37+
<artifactId>spring-boot-starter-web</artifactId>
38+
</dependency>
39+
40+
<dependency>
41+
<groupId>com.fasterxml.jackson.dataformat</groupId>
42+
<artifactId>jackson-dataformat-xml</artifactId>
43+
</dependency>
44+
45+
<dependency>
46+
<groupId>org.projectlombok</groupId>
47+
<artifactId>lombok</artifactId>
48+
</dependency>
49+
50+
</dependencies>
51+
52+
<build>
53+
<plugins>
54+
<plugin>
55+
<groupId>org.springframework.boot</groupId>
56+
<artifactId>spring-boot-maven-plugin</artifactId>
57+
</plugin>
58+
</plugins>
59+
</build>
60+
61+
</project>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.didispace;
2+
3+
import org.springframework.boot.SpringApplication;
4+
import org.springframework.boot.autoconfigure.SpringBootApplication;
5+
import org.springframework.context.annotation.Configuration;
6+
import org.springframework.http.converter.HttpMessageConverter;
7+
import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
8+
import org.springframework.http.converter.xml.MappingJackson2XmlHttpMessageConverter;
9+
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
10+
11+
import java.util.List;
12+
13+
/**
14+
*
15+
* @author 程序猿DD
16+
* @version 1.0.0
17+
* @blog http://blog.didispace.com
18+
*
19+
*/
20+
@SpringBootApplication
21+
public class Application {
22+
23+
public static void main(String[] args) {
24+
SpringApplication.run(Application.class, args);
25+
}
26+
27+
@Configuration
28+
class MessageConverterConfig extends WebMvcConfigurerAdapter {
29+
@Override
30+
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
31+
Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();
32+
builder.indentOutput(true);
33+
converters.add(new MappingJackson2XmlHttpMessageConverter(builder.build()));
34+
}
35+
}
36+
37+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package com.didispace.web;
2+
3+
4+
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
5+
import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement;
6+
import lombok.AllArgsConstructor;
7+
import lombok.Data;
8+
import lombok.NoArgsConstructor;
9+
10+
/**
11+
* @author 程序猿DD
12+
* @version 1.0.0
13+
* @blog http://blog.didispace.com
14+
*/
15+
@Data
16+
@NoArgsConstructor
17+
@AllArgsConstructor
18+
@JacksonXmlRootElement(localName = "User")
19+
public class User {
20+
21+
@JacksonXmlProperty(localName = "name")
22+
private String name;
23+
@JacksonXmlProperty(localName = "age")
24+
private Integer age;
25+
26+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.didispace.web;
2+
3+
import org.springframework.http.MediaType;
4+
import org.springframework.stereotype.Controller;
5+
import org.springframework.web.bind.annotation.*;
6+
7+
/**
8+
*
9+
* @author 程序猿DD
10+
* @version 1.0.0
11+
* @blog http://blog.didispace.com
12+
*
13+
*/
14+
@Controller
15+
public class UserController {
16+
17+
@PostMapping(value = "/user", consumes = MediaType.APPLICATION_XML_VALUE, produces = MediaType.APPLICATION_XML_VALUE)
18+
@ResponseBody
19+
public User create(@RequestBody User user) {
20+
user.setName("didispace.com : " + user.getName());
21+
user.setAge(user.getAge() + 100);
22+
return user;
23+
}
24+
25+
}

Chapter3-1-8/src/main/resources/application.properties

Whitespace-only changes.

0 commit comments

Comments
 (0)