spring boot 自动装配 及xstream XML转为JAVA对象注意补充:xstream.setClassLoader(this.getClass().getClassLoader());
原创
©著作权归作者所有:来自51CTO博客作者xocom的原创作品,请联系作者获取转载授权,否则将追究法律责任
两个类,互相调用又不需要实例化的时候。
每个类都需要注入,否则用NEW的办法, @value初始化赋值会失败
1:启动的时候要扫描好对应包
@SpringBootApplication
@ComponentScan({"CXF.ccb", "com.itg.b2e"})
2:单独的类要加注解 @componet
@Profile("dev")
@Component("CCBPayServiceImpl")
public class CCBPayServiceImpl implements CCBPayService {
否则调用的时候会提示:Consider defining a bean of type in your configuration.
3:XML转JAVA,需要补充
//BLow 测试付款结果转为JAVA对象 注意补充:xstream.setClassLoader(this.getClass().getClassLoader());String str_xml = "<?xml version=\"1.0\" encoding=\"GB18030\"?><TX> <REQUEST_SN>1489569681598</REQUEST_SN> <CUST_ID>J350203660108411#0W</CUST_ID> <TX_CODE>6W8010</TX_CODE> <RETURN_CODE>000000</RETURN_CODE> <RETURN_MSG></RETURN_MSG> <LANGUAGE>CN</LANGUAGE> <TX_INFO> <CREDIT_NO>100542405761</CREDIT_NO> <DEAL_TYPE>2</DEAL_TYPE> <VALIDATE_CODE>17614772393825</VALIDATE_CODE> <INDIVIDUAL_NAME1></INDIVIDUAL_NAME1> <INDIVIDUAL1></INDIVIDUAL1> <INDIVIDUAL_NAME2></INDIVIDUAL_NAME2> <INDIVIDUAL2></INDIVIDUAL2> <REM1></REM1> <REM2></REM2> <CST_PAY_NO></CST_PAY_NO> </TX_INFO></TX>";logger.debug(str_xml.toString());str_xml = str_xml.replaceAll("&(?!amp;)", "&");//XML转为对象XStream xstream = new XStream(new StaxDriver(new NoNameCoder()));xstream.setClassLoader(this.getClass().getClassLoader());xstream.alias("TX",RESP_6W8010.class);xstream.autodetectAnnotations(true);xstream.registerConverter( new CustomBigDecimalConverter());xstream.registerConverter( new CustomIntegerConverter());xstream.alias("TX_INFO", RESP_6W8010.TXInfo.class);RESP_6W8010 resp = (RESP_6W8010) xstream.fromXML(str_xml);logger.debug(resp.toString());return resp.toString();//Up 测试付款结果转为JAVA对象