linux cpu占用率如何看
246
2022-11-06
JAXBContext中bean和xml之间的转换
JAXBContext中bean和xml之间的转换,以及xml相关的方法
JAXB是什么?
JAXB(即Java Architecturefor XML Binding)是一个业界的标准,
即是一项可以根据XML Schema产生Java类的技术。
该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,
并能将Java对象树的内容重新写到XML实例文档。
@Data@AllArgsConstructor@NoArgsConstructor //需要无惨构造器@XmlRootElementpublic class ClassA { private String file1; private String file2; }
测试类
public class jbTest { public static void main(String[] args) { // bean转换成xml ClassA a=new ClassA("hello string","hello int"); System.out.println(a); try { JAXBContext context = JAXBContext.newInstance(ClassA.class); Marshaller marshaller = context.createMarshaller(); marshaller.marshal(a,System.out);
} catch (JAXBException e) {
e.printStackTrace();S } printLine(); // xml转换成bean String xmlStr="" + "
Unmarshaller unmarshaller = context.createUnmarshaller();
ClassA a2 = (ClassA) unmarshaller.unmarshal(new StringReader(xmlStr)); System.out.println(a2); } catch (JAXBException e) { e.printStackTrace(); } } public static void printLine(){ System.out.println("==============================="); }}
XStream使用(序列号xml)导入pom文件
测试代码
XStream stream=new XStream(); stream.alias("hellowolrd",String.class); String str = stream.toXML("str"); System.out.println(str); // 结果: //
这是基本用法,然后可以根据自己的需求扩展
Document使用拼接xml格式的文件导入pom文件
测试代码和结果:
Document root= DocumentHelper.createDocument(); Element html = root.addElement("html"); html.addElement("body").addText("txt_body"); html.addElement("head").addText("txt_head"); System.out.println(root.asXML());// 结果// //
txt_bodytxt_head 项目工具类 package com.hsbc.tt.boi.batchservicecommon.util; import com.hsbc.tt.boi.batchservicecommon.bean.ProcessorPayload;import com.hsbc.tt.boi.batchservicecommon.dispatch.factory.BulkProcessorFactory;import com.hsbc.tt.boi.common.dto.RoutingPayload;import com.hsbc.tt.boi.common.enums.MessageType;import java.io.StringReader;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.concurrent.ConcurrentHashMap;import javax.xml.bind.DataBindingException;import javax.xml.bind.JAXBContext;import javax.xml.bind.JAXBException;import javax.xml.bind.Unmarshaller;import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory; public final class MessageUnmarshallerUtil { private static final Logger log = LoggerFactory.getLogger(MessageUnmarshallerUtil.class); private static final Mappackage com.hsbc.tt.boi.batchservicecommon.bean;
import com.hsbc.tt.boi.batchservicecommon.entity.ProcessorLock;
import com.hsbc.tt.boi.common.dto.RoutingPayload;
import com.hsbc.tt.boi.common.htsmsgentity.accounting.AccountEntries;
import com.hsbc.tt.boi.common.htsmsgentity.accounting.Accounting;
import com.hsbc.tt.boi.common.htsmsgentity.accounting.Body;
import com.hsbc.tt.boi.common.htsmsgentity.balancemis.BalanceMis;
import com.hsbc.tt.boi.common.htsmsgentity.balancemis.SubHeader;
import com.hsbc.tt.boi.common.htsmsgentity.lmtchk.Lmtchk;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
public class ProcessorPayload
private final RoutingPayload routingPayload;
private final E proponix;
private String processor;
private ProcessorPayload original;
private ProcessorLock processorLock;
private ProcessStatus result;
private int resultCount;
private StringBuilder resultDesc;
private boolean requiredRollback;
public ProcessorPayload(RoutingPayload routingPayload, E proponix) {
this.result = ProcessStatus.PENDING;
this.resultDesc = new StringBuilder();
this.requiredRollback = false;
this.routingPayload = routingPayload;
this.proponix = proponix;
this.rightPadFixLength(proponix);
}
private void rightPadFixLength(E proponix) {
String limitCustomerID;
String limitCustomerID;
if (proponix instanceof BalanceMis) {
BalanceMis balanceMis = (BalanceMis)proponix;
if (null != balanceMis) {
SubHeader subHeader = balanceMis.getSubHeader();
if (null != subHeader) {
limitCustomerID = subHeader.getRelationshipCustomerID();
balanceMis.getSubHeader().setRelationshipCustomerID(this.rightPadEight(limitCustomerID));
limitCustomerID = subHeader.getLimitCustomerID();
balanceMis.getSubHeader().setLimitCustomerID(this.rightPadEight(limitCustomerID));
}
}
}
if (proponix instanceof Lmtchk) {
Lmtchk lmtchk = (Lmtchk)proponix;
if (null != lmtchk) {
com.hsbc.tt.boi.common.htsmsgentity.lmtchk.SubHeader subHeader = lmtchk.getSubHeader();
if (null != subHeader) {
limitCustomerID = subHeader.getLimitCustomerID();
lmtchk.getSubHeader().setLimitCustomerID(this.rightPadEight(limitCustomerID));
}
}
}
if (proponix instanceof Accounting) {
Accounting accounting = (Accounting)proponix;
if (null != accounting) {
com.hsbc.tt.boi.common.htsmsgentity.accounting.SubHeader subHeader = accounting.getSubHeader();
if (null != subHeader) {
limitCustomerID = subHeader.getLimitCustomerID();
accounting.getSubHeader().setLimitCustomerID(this.rightPadEight(limitCustomerID));
String relationshipCustomerID = subHeader.getRelationshipCustomerID();
accounting.getSubHeader().setRelationshipCustomerID(this.rightPadEight(relationshipCustomerID));
}
Body body = accounting.getBody();
if (null != body) {
List
Iterator var14 = accountEntriesList.iterator();
while(var14.hasNext()) {
AccountEntries accountEntries = (AccountEntries)var14.next();
accountEntries.setSettlementCustomerID(this.rightPadEight(accountEntries.getSettlementCustomerID()));
}
}
}
}
}
private ProcessorPayload(ProcessorPayload
this.result = ProcessStatus.PENDING;
this.resultDesc = new StringBuilder();
this.requiredRollback = false;
this.processor = processor;
this.routingPayload = original.routingPayload;
this.proponix = original.proponix;
this.original = original;
this.resultDesc = new StringBuilder(processor);
this.result = ProcessStatus.PENDING;
}
private String rightPadEight(String val) {
if (StringUtils.isEmpty(val)) {
val = "";
}
return StringUtils.rightPad(val, 18, '8');
}
public ProcessorPayload
return new ProcessorPayload(this, processor);
}
public void setResult(final ProcessStatus result) {
this.result = result;
}
public void setResult(final ProcessStatus result, final CharSequence errorMsg) {
this.setResult(result);
this.setResultDesc(errorMsg);
}
public void setResultDesc(final CharSequence errorMsg) {
if (errorMsg != null) {
this.resultDesc.append(" ").append(++this.resultCount).append(".").append(errorMsg);
}
}
public boolean isProcessable() {
return ProcessStatus.PENDING.equals(this.result);
}
public boolean isProcessorAlreadyCompleted() {
return this.processorLock == null && ProcessStatus.COMPLETE.equals(this.result);
}
public boolean isComplete() {
return ProcessStatus.COMPLETE.equals(this.result);
}
public void resetStatus() {
this.result = ProcessStatus.PENDING;
this.setResultDesc("reset");
this.processorLock = null;
this.requiredRollback = false;
}
public synchronized void mergeResult(ProcessorPayload processorPayload) {
ProcessStatus status = processorPayload.getResult();
if (!ProcessStatus.ERROR.equals(this.result) && !ProcessStatus.NOT_READY.equals(this.result)) {
this.setResult(status, processorPayload.getResultDesc());
}
}
public RoutingPayload getRoutingPayload() {
return this.routingPayload;
}
public E getProponix() {
return this.proponix;
}
public String getProcessor() {
return this.processor;
}
public ProcessorPayload getOriginal() {
return this.original;
}
public ProcessorLock getProcessorLock() {
return this.processorLock;
}
public ProcessStatus getResult() {
return this.result;
}
public int getResultCount() {
return this.resultCount;
}
public StringBuilder getResultDesc() {
return this.resultDesc;
}
public boolean isRequiredRollback() {
return this.requiredRollback;
}
public void setProcessor(final String processor) {
this.processor = processor;
}
public void setOriginal(final ProcessorPayload original) {
this.original = original;
}
public void setProcessorLock(final ProcessorLock processorLock) {
this.processorLock = processorLock;
}
public void setResultCount(final int resultCount) {
this.resultCount = resultCount;
}
public void setRequiredRollback(final boolean requiredRollback) {
this.requiredRollback = requiredRollback;
}
public boolean equals(final Object o) {
if (o == this) {
return true;
} else if (!(o instanceof ProcessorPayload)) {
return false;
} else {
ProcessorPayload> other = (ProcessorPayload)o;
if (!other.canEqual(this)) {
return false;
} else {
label103: {
Object this$routingPayload = this.getRoutingPayload();
Object other$routingPayload = other.getRoutingPayload();
if (this$routingPayload == null) {
if (other$routingPayload == null) {
break label103;
}
} else if (this$routingPayload.equals(other$routingPayload)) {
break label103;
}
return false;
}
Object this$proponix = this.getProponix();
Object other$proponix = other.getProponix();
if (this$proponix == null) {
if (other$proponix != null) {
return false;
}
} else if (!this$proponix.equals(other$proponix)) {
return false;
}
label89: {
Object this$processor = this.getProcessor();
Object other$processor = other.getProcessor();
if (this$processor == null) {
if (other$processor == null) {
break label89;
}
} else if (this$processor.equals(other$processor)) {
break label89;
}
return false;
}
Object this$original = this.getOriginal();
Object other$original = other.getOriginal();
if (this$original == null) {
if (other$original != null) {
return false;
}
} else if (!this$original.equals(other$original)) {
return false;
}
label75: {
Object this$processorLock = this.getProcessorLock();
Object other$processorLock = other.getProcessorLock();
if (this$processorLock == null) {
if (other$processorLock == null) {
break label75;
}
} else if (this$processorLock.equals(other$processorLock)) {
break label75;
}
return false;
}
Object this$result = this.getResult();
Object other$result = other.getResult();
if (this$result == null) {
if (other$result != null) {
return false;
}
} else if (!this$result.equals(other$result)) {
return false;
}
if (this.getResultCount() != other.getResultCount()) {
return false;
} else {
label60: {
Object this$resultDesc = this.getResultDesc();
Object other$resultDesc = other.getResultDesc();
if (this$resultDesc == null) {
if (other$resultDesc == null) {
break label60;
}
} else if (this$resultDesc.equals(other$resultDesc)) {
break label60;
}
return false;
}
if (this.isRequiredRollback() != other.isRequiredRollback()) {
return false;
} else {
return true;
}
}
}
}
}
protected boolean canEqual(final Object other) {
return other instanceof ProcessorPayload;
}
public int hashCode() {
int PRIME = true;
int result = 1;
Object $routingPayload = this.getRoutingPayload();
int result = result * 59 + ($routingPayload == null ? 43 : $routingPayload.hashCode());
Object $proponix = this.getProponix();
result = result * 59 + ($proponix == null ? 43 : $proponix.hashCode());
Object $processor = this.getProcessor();
result = result * 59 + ($processor == null ? 43 : $processor.hashCode());
Object $original = this.getOriginal();
result = result * 59 + ($original == null ? 43 : $original.hashCode());
Object $processorLock = this.getProcessorLock();
result = result * 59 + ($processorLock == null ? 43 : $processorLock.hashCode());
Object $result = this.getResult();
result = result * 59 + ($result == null ? 43 : $result.hashCode());
result = result * 59 + this.getResultCount();
Object $resultDesc = this.getResultDesc();
result = result * 59 + ($resultDesc == null ? 43 : $resultDesc.hashCode());
result = result * 59 + (this.isRequiredRollback() ? 79 : 97);
return result;
}
public String toString() {
return "ProcessorPayload(routingPayload=" + this.getRoutingPayload() + ", proponix=" + this.getProponix() + ", processor=" + this.getProcessor() + ", original=" + this.getOriginal() + ", processorLock=" + this.getProcessorLock() + ", result=" + this.getResult() + ", resultCount=" + this.getResultCount() + ", resultDesc=" + this.getResultDesc() + ", requiredRollback=" + this.isRequiredRollback() + ")";
}
}
package com.hsbc.tt.boi.common.htsmsgentity.balancemis;
import com.hsbc.tt.boi.common.dto.HtsMessage;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
// 控制默认情况下是否对字段或 Javabean 属性进行系列化
//FIELD: JAXB 绑定类中的每个非静态、非瞬态字段将会自动绑定到 XML,除非由 XmlTransient 注释。
@XmlAccessorType(XmlAccessType.FIELD)
//指定生成元素的顺序。propOrder的值为{"name", "addr", "area"},生成的xml元素必须按照propOrder指定的顺序排序。
@XmlType(
name = "",s
propOrder = {"header", "subHeader", "userHeader", "body"}
)
//将类或枚举类型映射到 XML 元素。JAXB中的注解,用来根据java类生成xml内容。
@XmlRootElement(
name = "Proponix"
)
public class BalanceMis implements HtsMessage {
//将被注解的字段(非静态),或者被注解的get/set方法对应的字段映射为本地元素,也就是子元素。
@XmlElement(
name = "Header",
required = true
)
protected Header header;
@XmlElement(
name = "SubHeader",
required = true
)
protected SubHeader subHeader;
@XmlElement(
name = "UserHeader"
)
protected UserHeader userHeader;
@XmlElement(
name = "Body",
required = true
)
protected Body body;
public BalanceMis() {
}
public Header getHeader() {
return this.header;
}
public void setHeader(Header value) {
this.header = value;
}
public SubHeader getSubHeader() {
return this.subHeader;
}
public void setSubHeader(SubHeader value) {
this.subHeader = value;
}
public UserHeader getUserHeader() {
return this.userHeader;
}
public void setUserHeader(UserHeader value) {
this.userHeader = value;
}
public Body getBody() {
return this.body;
}
public void setBody(Body value) {
this.body = value;
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~