spring定时功能(之前用qutaz感觉配置很多, 这种简单很多)
xstream解析xml( 暂时有两点疑问, 第一少些字段会报错(比如xml里面有3个字段, bean里面只映射两个), gson解析json不会这样. 第二 标签中有属性不知道怎么提取)
1 导入 xstream 的pom包
2, 建一个工具类(别处down下来的)
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;
public class XStreamHandle {
/**
* 实体转xml字符串
* @param obj
* @return
*/
public static String toXml(Object obj) {
XStream xstream = new XStream(new DomDriver("utf8"));
xstream.processAnnotations(obj.getClass()); // 识别obj类中的注解
return xstream.toXML(obj);
}
/**
* 字符串转实体
* @param xmlStr
* @param cls
* @return
*/
public static <T> T toBean(String xmlStr, Class<T> cls) {
XStream xstream = new XStream(new DomDriver());
xstream.processAnnotations(cls);
@SuppressWarnings("unchecked")
T t = (T) xstream.fromXML(xmlStr);
return t;
}
}
3, 建好oop映射bean, 加号注解 注解里面的参数必须和xml里面的属性名一致, 区分大小写
@XStreamAlias("Order")
public class Order {
@XStreamAlias("LatestShipDate")
private String LatestShipDate;
@XStreamAlias("OrderType")
private String OrderType;
@XStreamAlias("PurchaseDate")
private String PurchaseDate;
@XStreamAlias("IsReplacementOrder")
private String IsReplacementOrder;
@XStreamAlias("LastUpdateDate")
private String LastUpdateDate;
@XStreamAlias("AmazonOrderId")
private String AmazonOrderId;
@XStreamAlias("BuyerEmail")
private String BuyerEmail;
@XStreamAlias("NumberOfItemsShipped")
private String NumberOfItemsShipped;
4,直接开始调用(如果有多层,直接调最上层父类, 可以直接把下面的之类 . 出来)
Order order = XStreamHandle.toBean(xml, Order.class);
System.out.println(Order.getId());