1、新建maven工程xml-bean-convert

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>xml.bean.convert</groupId><artifactId>xml-bean-convert</artifactId><version>1.0-SNAPSHOT</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>com.fasterxml.jackson.dataformat</groupId><artifactId>jackson-dataformat-xml</artifactId><version>2.9.8</version></dependency></dependencies></project>

红色加粗部分是xml和bean转换依赖的包

2、启动类

@SpringBootApplication
public class Application {public static void main(String[] args) throws Exception {SpringApplication.run(Application.class, args);}
}

3、新建实体类,并添加xml和和bean转换的注解(注意,注解要写在get方法上)

public class Student {private Integer id;private String stuName;private String sex;@JacksonXmlProperty(isAttribute = true,localName = "STUDENT_ID")public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@JacksonXmlProperty(localName = "STUDENT_NAME")public String getStuName() {return stuName;}public void setStuName(String stuName) {this.stuName = stuName;}@JacksonXmlProperty(localName = "STUDENT_SEX")public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}@Overridepublic String toString() {return "Student{" +"id=" + id +", stuName='" + stuName + '\'' +", sex='" + sex + '\'' +'}';}
}

@JacksonXmlRootElement(localName ="MESSAGE")
public class Teacher {private Integer id;private String teacherName;private List<Student> studentList;@JacksonXmlProperty(isAttribute = true,localName = "TEACHER_ID")public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}@JacksonXmlProperty(localName = "TEACHER_NAME")public String getTeacherName() {return teacherName;}public void setTeacherName(String teacherName) {this.teacherName = teacherName;}@JacksonXmlElementWrapper(localName ="STUDENT_LIST")@JacksonXmlProperty(localName ="STUDENT")public List<Student> getStudentList() {return studentList;}public void setStudentList(List<Student> studentList) {this.studentList = studentList;}@Overridepublic String toString() {return "Teacher{" +"id=" + id +", teacherName='" + teacherName + '\'' +", studentList=" + studentList +'}';}
}

4、写controller进行测试

@RestController
@RequestMapping("/teacher")
public class TeacherController {@RequestMapping(value = "/get-info",method = RequestMethod.GET, produces = "application/xml")@ResponseBodypublic Teacher getTest(){Student student1 = new Student();student1.setId(1);student1.setStuName("张三");student1.setSex("男");Student student2 = new Student();student2.setId(2);student2.setStuName("李四");student2.setSex("男");Teacher teacher = new Teacher();teacher.setId(11);teacher.setTeacherName("杨老师");teacher.setStudentList(Arrays.asList(student1,student2));return teacher;}@RequestMapping(value = "/post-info",method = RequestMethod.POST, consumes = "application/xml")public void postTest(@RequestBody Teacher teacher){System.out.println("postman传过来的xml信息转换成实体类如下:==========");System.out.println(teacher.toString());}
}

1)首先用postman测试返回xml

2)首先用postman测试用xml格式传参

转载于:https://www.cnblogs.com/boshen-hzb/p/10334825.html

springboot实现xml传参和返回值相关推荐

  1. java中注解动态传参_SpringMVC之注解、传参、返回值及拦截器

    1. 注解式开发之annotation-driven解释 (1) mvc注解驱动在哪个文件中配置? Springmvc.xml (2) 配置mvc注解驱动使用哪个标签? 2. 注解式开发之视图解析器 ...

  2. 【php7扩展开发四】函数的参数 ,引用传参 ,返回值

    函数参数解析 之前我们定义的函数没有接收任何参数,那么扩展定义的内部函数如何读取参数呢?用户自定义函数在编译时会为每个参数创建一个zend_arg_info结构,这个结构用来记录参数的名称.是否引用传 ...

  3. Python exec使用:locals,golobals传参读取返回值

    简介 exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码,等同于可以执行整个py文件. 简单示例: >> exec('fo ...

  4. 深入理解PHP内核(十二)函数-函数的定义、传参及返回值

    原文链接:http://www.orlion.ga/344/ 一.函数的定义 用户函数的定义从function 关键字开始,如下 function foo($var) { echo $var; } 1 ...

  5. 多维数组之二维数组传参、返回值、申请内存问题

    目录 多维数组 存储顺序 二维数组基础知识 数组名 下标 指向数组的指针 二维数组使用 初始化 作为函数参数的二维数组 二维数组返回值与申请内存问题 多维数组 如果某个数组的维数不止1个,它就被称为多 ...

  6. 【Python】多线程的使用,通过传参接收返回值

    参考:廖雪峰的官方网站 Python多线程 多任务可以由多进程完成,也可以由一个进程内的多线程完成. 我们前面提到了进程是由若干线程组成的,一个进程至少有一个线程. 由于线程是操作系统直接支持的执行单 ...

  7. mybatis的mapper接口与xml传参问题

    本文来说下mybatis的mapper接口与xml传参问题 文章目录 单个基础数据类型的传参 多个基础数据类型的传参 单个javabean 多个javabean 单个基础数据类型的传参 也就是说,接口 ...

  8. vue函数如何调用其他函数?_编程|如何简单理解函数的传参、返回、调用

    1 函数内部变量的局部性 在一个函数中定义的变量(包括实参),其作用域仅限于定义它的函数中,在其它的函数不能使用,这种变量称为"局部变量". 局部变量的作用域:函数内部声明和定义的 ...

  9. Spring Boot AOP处理方法的入参和返回值

    前言 IOC和AOP是Spring 中最重要的两个模块.这里练习一下如何使用Spring Boot AOP处理方法的入参和返回值. Spring AOP的简单介绍: AOP(Aspect-Orient ...

  10. Spring AOP(获取入参和返回值)及其原理:动态代理

    此篇会先演示Spring AOP(获取入参和返回值),之后再演示AOP的原理:动态代理. Spring AOP: AOP思想: AOP(Aspect Oriented Programming),即面向 ...

最新文章

  1. 堆叠式传感器架构带来先进的视觉功能
  2. excel冻结窗口怎么设置_IE浏览器弹出窗口怎么设置
  3. RYU控制器的学习笔记(二)
  4. 使用Kotlin对ViewGroup的视图进行函数使操作
  5. Java Annotation的RetentionPolicy介绍
  6. prototype 1.5 中文说明.doc
  7. python3精要(57)-all,any,bin(转换二进制)
  8. 谁顶住双11的世界级流量洪峰?神龙架构负责人等9位大牛现场拆解阿里秘籍
  9. 敬业福和花花卡算啥?这次不来,你亏了
  10. Vue-CLI3.x 高版本覆盖低版本Vue-CLI2.x 解决方法
  11. CMAQ-5.2安装及测试数据运行
  12. 崩坏星穹铁道PC、安卓、iOS三端配置要求
  13. 一个不错的技术面试官是怎么样的?
  14. 邱与他的bug——Android中点击返回键重新刷新的问题
  15. HGAME 2022 week1 个人部分WP
  16. DEV、SIT、UAT、PET、SIM、PRD、PROD缩写介绍
  17. AC日记——Two poj 1849
  18. 在线课程推荐(国外篇)
  19. 解决:禁止访问 (403) CSRF验证失败
  20. Win11 KB5019157(22000.1281)11月累积补丁推送了!

热门文章

  1. JUC中Executor基本知识
  2. matlab练习程序(对应点集配准的四元数法)
  3. 图书管理系统(一):出版社列表增加、删除和编辑
  4. Vue 定义组件模板的七种方式(一般用单文件组件更好)
  5. macOS平台安装metasploit
  6. RabbitMQ文档翻译——Hello World!(下)
  7. Ubuntu下编译运行C#——mono tools
  8. thrift (转)
  9. Java高并发实战,锁的优化
  10. 让海底电缆给数据中心提供更快的直连