网站链接: 我爱捣鼓
当前位置: 首页 > web开发 > JAVA

springboot读取xml文件并转换为对象的例子

2022/11/16 21:20:59

这一阵子做java springboot web项目,需要读取xml文件的配置信息,并将其转换为对象实体,这里我把代码共享给大家,希望对大家有所帮助! 将Java对象序列化成XML格式,将XML反序列化还原为Java对象。这里我们用到了XStream类。XStream的作用  XStream是一个简单的…

      这一阵子做java springboot web项目,需要读取xml文件的配置信息,并将其转换为对象实体,这里我把代码共享给大家,希望对大家有所帮助!

      将Java对象序列化成XML格式,将XML反序列化还原为Java对象。这里我们用到了XStream类。

  • XStream的作用

  XStream是一个简单的基于Java库,Java对象序列化到XML,反之亦然(即:可以轻易的将Java对象和xml文档相互转换)。

  下载地址:http://x-stream.github.io/download.html

  • XStream的特点

使用方便 - XStream的API提供了一个高层次外观,以简化常用的用例。

无需创建映射 - XStream的API提供了默认的映射大部分对象序列化。

性能  - XStream快速和低内存占用,适合于大对象图或系统。

干净的XML  - XStream创建一个干净和紧凑XML结果,这很容易阅读。

不需要修改对象 - XStream可序列化的内部字段,如私有和最终字段,支持非公有制和内部类。默认构造函数不是强制性的要求。

完整对象图支持 - XStream允许保持在对象模型中遇到的重复引用,并支持循环引用。

可自定义的转换策略 - 定制策略可以允许特定类型的定制被表示为XML的注册。

安全框架 - XStream提供了一个公平控制有关解组的类型,以防止操纵输入安全问题。

错误消息 - 出现异常是由于格式不正确的XML时,XStream抛出一个统一的例外,提供了详细的诊断,以解决这个问题。

另一种输出格式 - XStream支持其它的输出格式,如JSON。

  • XStream的应用

一:创建Maven工程,引入xstream依赖:

<!--xstream-->
    <dependency>
      <groupId>com.thoughtworks.xstream</groupId>
      <artifactId>xstream</artifactId>
      <version>1.4.4</version>
    </dependency>

二:创建Java序列化为XML格式、XML反序列化为Java对象的类:

package cn.micai.base.io;
 
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
 
import java.io.IOException;
/**
 * @Date: 2018/8/23 10:48
 * @Description: 将Java对象序列化成XML格式,将XML反序列化还原为Java对象
 */
public class XmlSerializeDeserializeMain {
 
    /**
     * 将Java对象序列化成XML格式
     * @param employee
     * @return
     * @throws IOException
     */
    public static String serialize(Employee employee){
        // 将employee对象序列化为XML
        XStream xStream = new XStream(new DomDriver());
        // 设置employee类的别名
        xStream.alias("employee", Employee.class);
        String personXml = xStream.toXML(employee);
        return personXml;
    }
 
    /**
     * 将XML反序列化还原为Java对象
     * @param personXml
     * @return
     */
    public static Employee deserialize(String personXml) {
        // 将employee对象序列化为XML
        XStream xStream = new XStream(new DomDriver());
        Employee employee = (Employee) xStream.fromXML(personXml);
        return employee;
    }
 
    public static void main(String [] args) {
 
        Employee employee = new Employee();
        employee.setEmployeeId(1);
        employee.setEmployeeName("赵新国");
        employee.setDepartment("软件工程师");
        // 序列化
        String serialize = serialize(employee);
        System.out.println(serialize);
        // 反序列化
        Employee deserialize = deserialize(serialize);
        System.out.println(deserialize.toString());
 
    }
 
}

三:创建Employee实体对象

package cn.micai.base.io;
 
import java.io.Serializable;
public class Employee implements Serializable {
 
    private static final long serialVersionUID = 1L;
    private int employeeId;
    private String employeeName;
    /**
     * 使用transient关键字,表示该字段不序列化
     */
    private transient String department;
 
    public int getEmployeeId() {
        return employeeId;
    }
    public void setEmployeeId(int employeeId) {
        this.employeeId = employeeId;
    }
    public String getEmployeeName() {
        return employeeName;
    }
    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }
    public String getDepartment() {
        return department;
    }
    public void setDepartment(String department) {
        this.department = department;
    }
 
    @Override
    public String toString() {
        return "Employee{" +
                "employeeId=" + employeeId +
                ", employeeName='" + employeeName + '\'' +
                ", department='" + department + '\'' +
                '}';
    }
}

        通过以上内容我们知道了springboot读取xml文件并转换为对象的方法。感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • springboot项目设置session生命周期时间的几种方法?

    java开发的springboot项目设置session生命周期时间的方法有三种,今天我们就来说说这三种方法。一丶修改Tomcat配置web.xml文件 在Tomcat服务器对应conf配置文件夹下的web.xml文件中修改<session-time-out></session-time-out>中的值. Tomcat默…

    2022/11/12 12:35:20
  • 图文教程一步一步教你在​idea中使用svn如何创建分支?

    我们在用idea开发java项目时需要通过svn创建项目分支,这样更高效率的开发新的项目,今天我们就通过图文教程一步一步教你idea中如何创建分支?第一步第二步第三步 通过以上内容我们知道了在idea中使用svn如何创建分支。感谢您访问“我爱捣鼓(www.woaidaogu.com)”…

    2022/11/12 12:23:28
  • java函数中如何返回多个值?

    我们一般在写java函数时只会返回一个值,但有时我们需要在函数中返回多个值应该怎么办呢?使用数组 数组可用于返回基本数据类型和引用数据类型。 例如,下面的getCoordinates方法返回double数组:double[] getCoordinatesDoubleArray() { double[] coordi…

    2022/11/8 22:08:01