欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springMarchal集成xStream的完整示例代碼

 更新時(shí)間:2022年03月01日 11:54:20   作者:JaxYoun  
這篇文章主要介紹了springMarchal集成xStream的示例代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

Xstream是一個(gè)庫, 用于將對象序列化為xml, 反之亦然, 而無需任何映射文件。注意, castor需要一個(gè)映射文件。

XStreamMarshaller類提供了將對象封送為xml的工具, 反之亦然。

1.maven GAV(1.4.11.1版本才兼容):

<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.4.11.1</version>
</dependency>

2.POJO類:

package com.yang.alibabamysql.domain.bo;

import com.thoughtworks.xstream.annotations.XStreamAlias;
import lombok.Data;
import java.util.List;
@XStreamAlias(value = "man", impl = Man.class)
@Data
public class Man {
    @XStreamAlias("id")
    private Long id;
    @XStreamAlias("name")
    private String name;
    @XStreamAlias("sonList")
    protected List<Son> sonList;
    @XStreamAlias(value = "son", impl = Son.class)
    @Data
    public static class Son {
        @XStreamAlias("id")
        private Long id;
        @XStreamAlias("name")
        private String name;
    }
}

3.配置類:

package com.yang.alibabamysql.config;

import com.thoughtworks.xstream.io.naming.NoNameCoder;
import com.thoughtworks.xstream.io.xml.Xpp3Driver;
import com.yang.alibabamysql.domain.bo.Man;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.oxm.xstream.XStreamMarshaller;
@Configuration
public class XStreamMarshallerConfig {
    @Bean
    public XStreamMarshaller getXStreamMarshaller() {
        XStreamMarshaller xStreamMarshaller = new XStreamMarshaller();
        xStreamMarshaller.setStreamDriver(new Xpp3Driver(new NoNameCoder()));
        xStreamMarshaller.setAnnotatedClasses(Man.class, Man.Son.class);
        xStreamMarshaller.setAutodetectAnnotations(true);
        return xStreamMarshaller;
    }
}

4.測試類:

package com.yang.alibabamysql.controller;

import com.google.common.collect.Lists;
import com.thoughtworks.xstream.io.naming.NoNameCoder;
import com.thoughtworks.xstream.io.xml.Xpp3Driver;
import com.yang.alibabamysql.AlibabaMysqlApplicationTests;
import com.yang.alibabamysql.domain.bo.Man;
import org.springframework.oxm.xstream.XStreamMarshaller;
import java.util.ArrayList;
class UserControllerTest extends AlibabaMysqlApplicationTests {
    private static final XStreamMarshaller xStreamMarshaller;
    static {
        xStreamMarshaller = new XStreamMarshaller();
        xStreamMarshaller.setStreamDriver(new Xpp3Driver(new NoNameCoder()));
        xStreamMarshaller.setAnnotatedClasses(Man.class, Man.Son.class);
        xStreamMarshaller.setAutodetectAnnotations(true);
    }
    public static void marshal() {
        Man.Son son = new Man.Son();
        son.setId(2L);
        son.setName("ypw");
        ArrayList<Man.Son> sonArrayList = Lists.newArrayList(son);
        Man man = new Man();
        man.setId(1L);
        man.setName("yjx");
        man.setSonList(sonArrayList);
        System.err.println(xStreamMarshaller.getXStream().toXML(man));
    public static void unmarshal() {
        String xml = "<man><id>1</id><name>yjx</name><sonList><son><id>2</id><name>ypw</name></son></sonList></man>";
        Man man = (Man) xStreamMarshaller.getXStream().fromXML(xml);
        System.err.println(man.getSonList().get(0).getName());
    public static void main(String[] args) {
        marshal();
        System.out.println("=============");
        unmarshal();
}

輸出:

<man>
  <id>1</id>
  <name>yjx</name>
  <sonList>
    <son>
      <id>2</id>
      <name>ypw</name>
    </son>
  </sonList>
</man>
=============
ypw

到此這篇關(guān)于springMarchal集成xStream的文章就介紹到這了,更多相關(guān)springMarchal集成xStream內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • WebUploader實(shí)現(xiàn)圖片上傳功能

    WebUploader實(shí)現(xiàn)圖片上傳功能

    這篇文章主要為大家詳細(xì)介紹了WebUploader實(shí)現(xiàn)圖片上傳功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Kafka中Producer和Consumer的作用詳解

    Kafka中Producer和Consumer的作用詳解

    這篇文章主要介紹了Kafka中Producer和Consumer的作用詳解,Kafka是一個(gè)分布式的流處理平臺(tái),它的核心是消息系統(tǒng),Producer是Kafka中用來將消息發(fā)送到Broker的組件之一,它將消息發(fā)布到主題,并且負(fù)責(zé)按照指定的分區(qū)策略將消息分配到對應(yīng)的分區(qū)中,需要的朋友可以參考下
    2023-12-12
  • SpringBoot集成mybatis實(shí)例

    SpringBoot集成mybatis實(shí)例

    本篇文章主要介紹了SpringBoot集成mybatis實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • Java中this關(guān)鍵字的用法詳解

    Java中this關(guān)鍵字的用法詳解

    我知道很多朋友都和我一樣,在JAVA程序中似乎經(jīng)常見到this,自己也偶爾用到它,但是到底this該怎么用,卻心中無數(shù),下面這篇文章主要給大家介紹了關(guān)于Java中this關(guān)鍵字用法的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • 如何使用Spring Boot ApplicationRunner解析命令行中的參數(shù)

    如何使用Spring Boot ApplicationRunner解析命令行中的參數(shù)

    這篇文章主要介紹了使用Spring Boot ApplicationRunner解析命令行中的參數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-12-12
  • spring的TransactionalEventListener事務(wù)感知源碼解析

    spring的TransactionalEventListener事務(wù)感知源碼解析

    這篇文章主要為大家介紹了spring的TransactionalEventListener事務(wù)感知源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • SpringBoot項(xiàng)目中使用緩存Cache的正確方法分享

    SpringBoot項(xiàng)目中使用緩存Cache的正確方法分享

    緩存可以通過將經(jīng)常訪問的數(shù)據(jù)存儲(chǔ)在內(nèi)存中,減少底層數(shù)據(jù)源如數(shù)據(jù)庫的壓力,從而有效提高系統(tǒng)的性能和穩(wěn)定性。本文就來講講SpringBoot項(xiàng)目中使用緩存Cache的正確姿勢吧
    2023-04-04
  • 詳解Java中的時(shí)間處理與時(shí)間標(biāo)準(zhǔn)

    詳解Java中的時(shí)間處理與時(shí)間標(biāo)準(zhǔn)

    這篇文章主要為大家詳細(xì)介紹了三個(gè)時(shí)間標(biāo)準(zhǔn)GMT,CST,UTC的規(guī)定,以及Java進(jìn)行時(shí)間處理的相關(guān)知識(shí),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09
  • javaweb實(shí)戰(zhàn)之商城項(xiàng)目開發(fā)(二)

    javaweb實(shí)戰(zhàn)之商城項(xiàng)目開發(fā)(二)

    這篇文章主要針對javaweb商城項(xiàng)目開發(fā)進(jìn)行實(shí)戰(zhàn)演習(xí),利用mybatis創(chuàng)建DAO層,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Spring創(chuàng)建bean實(shí)例的幾種方式分享

    Spring創(chuàng)建bean實(shí)例的幾種方式分享

    這篇文章主要介紹了Spring創(chuàng)建bean實(shí)例的幾種方式分享,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-07-07

最新評論