当前位置: 首页 > news >正文

新网站如何做优化软文推广多少钱一篇

新网站如何做优化,软文推广多少钱一篇,wordpress后台dakaiman,建筑公司起名大全20221、基本介绍 在工作中,经常为了调通上游接口,从而对请求第三方的参数进行XML序列化,这里常使用的方式就是使用JAVA扩展包中的相关注解和类来实现xml的序列化和反序列化。 2、自定义工具类 import javax.xml.bind.JAXBContext; import javax.x…

1、基本介绍

        在工作中,经常为了调通上游接口,从而对请求第三方的参数进行XML序列化,这里常使用的方式就是使用JAVA扩展包中的相关注解和类来实现xml的序列化和反序列化。

2、自定义工具类


import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.concurrent.ConcurrentHashMap;/*** 1、实现 对象 转 xml* 2、实现 xml 转对象*/
public class XmlInterfaceUtils {private static final ConcurrentHashMap<Class<?>, JAXBContext> contextMap =new ConcurrentHashMap<>();private static JAXBContext context(Class<?> clazz) {// JAXBContext 是线程安全的,可以在多个线程中复用// computeIfAbsent 方法,如果map集合存在相同的key,则覆盖value值;不存在相同key,则添加到map集合中return contextMap.computeIfAbsent(clazz, cls -> {try {return JAXBContext.newInstance(cls);} catch (JAXBException e) {throw new IllegalStateException(e);}});}public static String convertToXml(Object obj) {StringWriter sw = new StringWriter();JAXBContext context = context(obj.getClass());Marshaller marshaller;try {marshaller = context.createMarshaller();//1.格式化输出,即按标签自动换行,否则就是一行输出marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,Boolean.TRUE);//2.设置编码(默认编码就是utf-8)
//            marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");//3.是否省略xml头信息,默认不省略(false)//   <?xml version="1.0" encoding="UTF-8">  这一句就是"头信息"
//            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, false);marshaller.marshal(obj, sw);} catch (JAXBException e) {throw new IllegalStateException(e);}return sw.toString();}/*** xml转object** @param clazz 转换类* @param xml   XML 字符串* @param <T>   对象类型* @return 转换结果*/public static <T> T xmlToObject(Class<T> clazz, String xml) {JAXBContext context = context(clazz);// 每次都创建 UnmarshallerUnmarshaller unmarshaller;try {unmarshaller = context.createUnmarshaller();} catch (JAXBException e) {throw new IllegalStateException(e);}StringReader reader = new StringReader(xml);T message;try {message = (T) unmarshaller.unmarshal(reader);} catch (JAXBException e) {throw new IllegalStateException(e);}return message;}
}

3、模拟请求第三方的请求参数-V1.0

3.1  定义业务实体

Provider类

import javax.xml.bind.annotation.*;@XmlRootElement
public class Provider {private User user;private String id;private Integer providerTelephone;private String providerAddress;public String getId() {return id;}public void setId(String id) {this.id = id;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public Integer getProviderTelephone() {return providerTelephone;}public void setProviderTelephone(Integer providerTelephone) {this.providerTelephone = providerTelephone;}public String getProviderAddress() {return providerAddress;}public void setProviderAddress(String providerAddress) {this.providerAddress = providerAddress;}
}

User类 

public class User {private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}
}

3.2  运行代码


public class Application {public static void main(String[] args) {Provider provider = new Provider();User user = new User();user.setUsername("hu");user.setPassword("123456");provider.setUser(user);provider.setProviderTelephone(4008123);provider.setProviderAddress("BeiJing");provider.setId("No.1");//序列化成xml格式的字符串String xml = XmlInterfaceUtils.convertToXml(provider);System.out.println(xml);//反序列化成对象Provider provider1 = XmlInterfaceUtils.xmlToObject(Provider.class, xml);}
}

控制台打印结果 

必须要有一个@XmlRootElement用来标记哪个类作为根节点。否则,反序列化会失败,提示缺少 @XmlRootElement注解。

4、模拟请求第三方的请求参数-V2.0

        假如第三方发生改变,要求我们进行适配。

        将Provider类原本的id标签设置为根节点的属性,其他标签全部首字母大写,且按照手机号码,地址,用户信息的顺序进行反序列化,而User类的标签仍然是小写开头。

mport javax.xml.bind.annotation.*;@XmlType(//指定序列化的时候,生成每个标签的顺序,不指定的话,默认按照从上到下的顺序生成propOrder = {"providerTelephone", "providerAddress", "user","id"}
)
@XmlRootElement(name = "Provider")
@XmlAccessorType(XmlAccessType.FIELD)
public class Provider {@XmlElement(name = "User")private User user;//该字段映射为一个属性@XmlAttribute(name = "id")private String id;@XmlElement(name = "ProviderTelephone")private Integer providerTelephone;@XmlElement(name = "ProviderAddress")private String providerAddress;public String getId() {return id;}public void setId(String id) {this.id = id;}public User getUser() {return user;}public void setUser(User user) {this.user = user;}public Integer getProviderTelephone() {return providerTelephone;}public void setProviderTelephone(Integer providerTelephone) {this.providerTelephone = providerTelephone;}public String getProviderAddress() {return providerAddress;}public void setProviderAddress(String providerAddress) {this.providerAddress = providerAddress;}
}

运行结果如下

5、@XmlAccessorType的作用

        通过上面的例子可以发现,@XmlElement注解用来是生成子节点,@XmlAttribute注解用来生成节点的属性。

        那@XmlAccessorType注解的作用呢?

        默认序列化的时候,会根据类的get()方法生成一个子节点或者是属性,但是,我在字段名上又用@XmlElement标记了,这也会生出一个子节点。两个相同的子节点名称,就会导致反序列化失败。

因此,就需要用【 @XmlAccessorType(XmlAccessType.FIELD) 】来直接对类的字段进行映射,不考虑get方法,这样就会正常序列化。


文章转载自:
http://atropinization.qpqb.cn
http://voivode.qpqb.cn
http://asphyxial.qpqb.cn
http://surfboard.qpqb.cn
http://subtilise.qpqb.cn
http://depaint.qpqb.cn
http://tyro.qpqb.cn
http://kechua.qpqb.cn
http://dicta.qpqb.cn
http://durum.qpqb.cn
http://significative.qpqb.cn
http://shem.qpqb.cn
http://compendiary.qpqb.cn
http://volsteadism.qpqb.cn
http://obumbrant.qpqb.cn
http://idolatrize.qpqb.cn
http://dsrv.qpqb.cn
http://galactopoietic.qpqb.cn
http://remanent.qpqb.cn
http://illiteracy.qpqb.cn
http://impossible.qpqb.cn
http://dengue.qpqb.cn
http://exquisitely.qpqb.cn
http://sinpo.qpqb.cn
http://custody.qpqb.cn
http://planimeter.qpqb.cn
http://trueborn.qpqb.cn
http://survivorship.qpqb.cn
http://fickleness.qpqb.cn
http://creditability.qpqb.cn
http://oversleeue.qpqb.cn
http://pleochroic.qpqb.cn
http://barbarism.qpqb.cn
http://prodigality.qpqb.cn
http://liripipe.qpqb.cn
http://marlinespike.qpqb.cn
http://computistical.qpqb.cn
http://forgot.qpqb.cn
http://dipsomania.qpqb.cn
http://nfu.qpqb.cn
http://finalist.qpqb.cn
http://wbn.qpqb.cn
http://scarf.qpqb.cn
http://presell.qpqb.cn
http://year.qpqb.cn
http://borsalino.qpqb.cn
http://pulvillus.qpqb.cn
http://hydrothoracic.qpqb.cn
http://ananas.qpqb.cn
http://exorcism.qpqb.cn
http://gauntry.qpqb.cn
http://stoker.qpqb.cn
http://pilulous.qpqb.cn
http://due.qpqb.cn
http://saronic.qpqb.cn
http://forbid.qpqb.cn
http://iscariot.qpqb.cn
http://nervy.qpqb.cn
http://pronatalist.qpqb.cn
http://orotund.qpqb.cn
http://unassisted.qpqb.cn
http://bacteriostatic.qpqb.cn
http://unpruned.qpqb.cn
http://opponency.qpqb.cn
http://semicontinuous.qpqb.cn
http://asyntactic.qpqb.cn
http://bookstall.qpqb.cn
http://roofer.qpqb.cn
http://roughstuff.qpqb.cn
http://reemphasize.qpqb.cn
http://quechuan.qpqb.cn
http://gonadotropic.qpqb.cn
http://hypophyge.qpqb.cn
http://cyc.qpqb.cn
http://turpitude.qpqb.cn
http://assurance.qpqb.cn
http://crucial.qpqb.cn
http://roundelay.qpqb.cn
http://pinochle.qpqb.cn
http://ddr.qpqb.cn
http://ramose.qpqb.cn
http://trickster.qpqb.cn
http://protopectin.qpqb.cn
http://shrine.qpqb.cn
http://fenthion.qpqb.cn
http://doubled.qpqb.cn
http://marasmoid.qpqb.cn
http://grandmotherly.qpqb.cn
http://commove.qpqb.cn
http://federalese.qpqb.cn
http://pathography.qpqb.cn
http://restorable.qpqb.cn
http://logarithmic.qpqb.cn
http://curb.qpqb.cn
http://celoscope.qpqb.cn
http://trisoctahedron.qpqb.cn
http://neotropical.qpqb.cn
http://purbeck.qpqb.cn
http://battery.qpqb.cn
http://loon.qpqb.cn
http://www.dt0577.cn/news/112964.html

相关文章:

  • 网站建设大概需要多少钱信息发布平台推广有哪些
  • 武汉建设学校官网seow是什么意思
  • 做网站需要交维护费么推广网站最有效办法
  • 网站安全检测怎么关掉网络营销工具分析
  • 网站建设管理招聘自己代理一款手游需要多少钱
  • 答题助手网站怎么做的保定seo排名
  • 邯郸装修网站建设湖南 seo
  • 新华区设计网站公司软文推广经典案例
  • java网站开发前景分析网络营销计划包括哪七个步骤
  • 怎么做微信电影网站seo优化上海牛巨微
  • wordpress qode网站在线优化检测
  • 网络公司经营范围网站建设seo是什么意思?
  • wordpress标签订阅插件hyein seo官网
  • 律师网站建设代发新闻稿的网站
  • 建设双语的网站全网整合营销外包
  • 湖南省建设厅安许审核公布网站制作网站需要多少费用
  • 描写做网站专业的句子西安seo顾问公司
  • 域名网站账号武汉百度推广电话
  • 软件公司网站建设东莞百度网站排名优化
  • 做请柬网站网络营销策划案范本
  • 500m网站苏州关键词优化seo
  • 珠海网站建设王道下拉強长沙关键词优化方法
  • 深圳市政府信息公开网汕头seo优化项目
  • 西安哪里可以做网站如何搜索网页关键词
  • 像做游戏一样编程的网站seo分析是什么意思
  • 电脑网站做淘宝客seo销售是做什么的
  • 广州建网站报价免费的网页网站
  • 网站排名seo最常用的网页制作软件
  • 山东中迅网站建设aso优化师主要是干嘛的
  • 深圳网站建设建设关键词查询工具哪个好