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

淘宝联盟网站推广位怎么做天津做网站选择津坤科技c

淘宝联盟网站推广位怎么做,天津做网站选择津坤科技c,威海网站制作,网站建设安全措施moxy json介绍编组和解组XML时使用JAXB的主要优点是编程模型。 只需注释几个POJO并使用JAXB API#xff0c;您就可以很容易地序列化为XML和从XML反序列化。 您无需担心有关XML如何编组/解组的细节。 一切都比DOM和SAX等替代方案简单得多。 现在#xff0c;XML文件中的数据本质… moxy json介绍 编组和解组XML时使用JAXB的主要优点是编程模型。 只需注释几个POJO并使用JAXB API您就可以很容易地序列化为XML和从XML反序列化。 您无需担心有关XML如何编组/解组的细节。 一切都比DOM和SAX等替代方案简单得多。 现在XML文件中的数据本质上趋于分层。 例如考虑以下XML文件 ?xml version1.0 encodingUTF-8? personfirstnameBarok/firstnamelastnameObama/lastnameage52/agecarmodelGreen Ford Focus 1.4L/model/car /person 在这种情况下Barok Obama人拥有的汽车是Green Ford Focus。 在这里我们看到了XML的层次结构特征。 车在人下。 在一个更复杂的示例中一个人可以拥有一个汽车该汽车具有一个汽车收音机该汽车具有一个放大器该汽车具有晶体管等。但是让我们暂时坚持我们的简单情况。 假设我们要使用JAXB解组该XML文件。 我们需要所有人的详细信息名字姓氏等以及属于该人的汽车的型号。 我们创建一个Person POJO和Car POJO并进行适当的注释。 XmlRootElement XmlAccessorType(XmlAccessType.FIELD) XmlType(propOrder{name, firstname, lastname}) public class Person {private String firstname;private String lastname;private int age;private Car car;public String getLastname() {return lastname;}public void setLastname(String lastname) {this.lastname lastname;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getFirstname() {return firstname;}public void setFirstname(String name) {this.firstname name;}public Car getCar() {return car;}public void setCar(Car car){this.car car;} }public class Car {private String model;public String getModel() {return model;}public void setModel(String model){this.model model;} } 要解组我们只需做 public static void unmarshall() throws Exception {JAXBContext jaxbContext JAXBContext.newInstance(Person.class);Unmarshaller unmarshaller jaxbContext.createUnmarshaller();Person person (Person)unmarshaller.unmarshal(new File(Person.xml));System.out.println(Perosn is person.toString()); } 这一切看起来非常简单-特别是当您考虑到Car实体甚至不需要任何注释时 但是Car仅具有一个属性为我们只希望从中获得一个属性的东西而拥有POJO类似乎有点过头了 记住这是一个简单的示例想象一下层次结构是否更深。 类似于包含实体的外部实体其中包含另一个实体该实体甚至包含另一个实体而我们所需的只是外部实体和来自最深层嵌套实体的一个属性。 本质上是相同的问题但更多的是矫kill过正。 我们必须确保在层次结构中的所有内容上都有POJO类甚至对于我们不需要的实体也是如此。 没有人喜欢代码膨胀。 所以我们能做些什么 好吧我们要记住的第一件事是JAXB是一个规范该规范有许多实现例如JaxMeAPIMOXyMetro。 如果我们要使用JAXB参考实现随JDK一起提供则无能为力。 我们必须有一个汽车和人POJO。 但是如果我们使用EclipseLink的MOXy实现则可以使用其一些扩展来帮助我们。 更具体地说我们可以使用受XPath启发的MOXy XmlPath扩展。 让我们来看看它的作用。 这是更新的Person POJO。 XmlRootElement XmlAccessorType(XmlAccessType.FIELD) XmlType(propOrder{name, firstname, lastname}) public class Person {private String firstname;private String lastname;private int age;public String getLastname() {return lastname;}public void setLastname(String lastname) {this.lastname lastname;}public int getAge() {return age;}public void setAge(int age) {this.age age;}public String getFirstname() {return firstname;}public void setFirstname(String name) {this.firstname name;}XmlPath(car/model/text())private String model;public String getModel() {return model;} } 那么汽车POJO哪里去了 好吧它被删除了。 我们不再需要它了。 再见。 使用MOXy XmlPath批注我们不需要Car POJO。 该批注驻留在org.eclipse.persistence.oxm.annotations包中将其放在类路径中确实很简单。 如果您是maven用户只需添加 dependencygroupidorg.eclipse.persistence/groupIdartifactideclipselink/artifactIdversion2.3.2/version /dependency 为了告诉您的JDK在运行时将MOXy用于JAXB实现您放置了一个名为 jaxb.properties与您的JAXB POJO位于同一目录中。 它包含一行 javax.xml.bind.context.factoryorg.eclipse.persistence.jaxb.JAXBContextFactory 为了确保您正在使用MOXy实现只需检查JAXB上下文 JAXBContext jaxbContext JAXBContext.newInstance(Person.class); System.out.println(jaxbContext is jaxbContext.toString()); 您应该看到类似以下内容 jaxbContext isorg.eclipse.persistence.jaxb.JAXBContext5e3974 之后没有任何变化。 完全相同的数据编码都可以使用。 我之所以喜欢此扩展的原因之一是因为它意味着更少的代码。 这通常意味着更简洁的代码和更多可维护的代码。 这在更复杂的情况下变得更加明显在这种情况下实体的层次结构比该简单示例要深得多。 如果使用诸如XJC之类的东西来生成POJO没关系您仍然会感到代码膨胀。 请记住JAXB被设置为比JAX替代品例如SAX和DOM更简洁的编程模型但是在具有深层次结构的场景中使用JAXB对类进行概要分析并不能使它令人信服地更加简洁。 请记住使用DOM和XPath甚至仅使用SAX来忽略不需要的类将非常容易。 MOXy通过提供对XML文件中的任何内容使用XPath表达式的能力将清洁的战斗带回到了JAXB。 注意MOXy刚刚作为WebLogic 12c的JAXB实现包含在内。 参考文献 MOXy项目页面 Blaise Doughan的博客 来自都柏林技术博客的 JCG合作伙伴 Alex Staveley 的MOXy实现使您的JAXB清洁器 相关文章 使用JAXB从XSD生成XML 重用生成的JAXB类 将对象映射到多个XML模式–天气示例 JAXBSAXDOM性能 带有简单框架教程的Android XML绑定 翻译自: https://www.javacodegeeks.com/2012/01/make-your-jaxb-cleaner-with-moxy.htmlmoxy json介绍
http://www.yutouwan.com/news/134525/

相关文章:

  • 保健品网站怎么做的网站开发pc版与手机版
  • 商城网站建设哪个公司好学编程好找工作吗?
  • 网站开发 jsp自己怎么创建网站
  • 高校二级网站建设方案wordpress手机版安装
  • 做网站前端用什么技术好宝塔为wordpress安装redis
  • 美食网站开发目的与意义阜新网站设计
  • 网站建设 图片html网站结构解决方案
  • 做古代风格头像的网站cpa单页网站怎么做
  • 公司营销型网站公司wordpress取消邮件验证码
  • 社交类网站开发需求分析wordpress 栏目显示
  • asp网站后台验证码错误安装wordpress 空白
  • 单县网站建设保定八大平台公司
  • 手机端怎么网站建设建设网站所需要的技术
  • 高端网站制作网站建设免费logo设计在线设计制作工具
  • 乐清门户网站建设wordpress短代码返回html
  • 网站开发地图板块浮动网站建设和维护待遇
  • 车佣做汽车网站怎么样沈阳男科医院免费在线咨询
  • 现货做网站网站后台登陆显示验证码错误
  • 屏蔽网站接口js广告网站制作公司兴田德润实力强
  • 常用设计网站wordpress匿名投稿
  • 陈巴尔虎旗网站建设旅游的网页设计模板
  • vs网站开发中企动力企业邮箱入口
  • 网站服务器与虚拟主机flask做网站工具
  • 如何给网站更换域名中国装修网官方网站
  • seo网站打开慢手机如何翻到国外网站
  • 重点建设政协网站wordpress进销存
  • 网站与新闻建设总结网络运营者应当按照网络安全等级保护制度的要求
  • 深圳营销型网站邵阳学院研究生与学科建设处网站
  • 青岛做网站的费用wordpress站外链接页面
  • 浙江省网站建设公司排名灵山建设局网站