欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java如何實現(xiàn)post請求webservice服務(wù)端

 更新時間:2022年03月23日 10:17:21   作者:litGrey  
這篇文章主要介紹了java如何實現(xiàn)post請求webservice服務(wù)端,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

post請求webservice服務(wù)端

當生成webService的客戶端不好實現(xiàn)時,通過java的post請求不失為一種好辦法。

1.例如我此時有一個wsdl文件

http://xxx.xxx.xxx.xxx:8081/APIService.svc?wsdl

2.通過SoapUI 我們可以將swdl文件轉(zhuǎn)換。從而模擬發(fā)送請求。以及參數(shù)

(不懂soapui請自行百度)

2.點擊row查看具體的發(fā)送參數(shù)

具體參數(shù)對應(yīng)規(guī)則(以下對應(yīng)代碼上應(yīng)該發(fā)送的參數(shù)是什么)

3.代碼實現(xiàn)

  public static void main(String[] args) {
        try{
            String url="http://xxx.xxx.xxx.xxx:8081/APIService.svc";
            String params="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:tem=\"http://tempuri.org/\" xmlns:hn=\"http://schemas.datacontract.org/2004/07/hn.DataAccess.bll\">\n" +
                    "         </tem:input>\n" +
                    "   </soapenv:Body>\n" +
                    "</soapenv:Envelope>";
            String host="xxx.xxx.xxx.xxx:8081";
            String SOAPAction="http://aaa/aaa/aaa";
 
            //接受返回報文
            String result = new String();
            URL u = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) u.openConnection();
            conn.setDoInput(true);
            //允許對外輸出數(shù)據(jù)
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.setDefaultUseCaches(false);
            conn.setRequestProperty("Host",host);
            conn.setRequestProperty("Content-Type","text/xml;charset=UTF-8");
            //soap
            conn.setRequestProperty("SOAPAction",SOAPAction);
            conn.setRequestProperty("Content-Length",String.valueOf(params.length()));
            conn.setRequestMethod("POST");
            //定義輸出流
            OutputStream output = conn.getOutputStream();
            if(StringUtils.isNotBlank(params)){
                byte[] b = params.getBytes("UTF-8");
                //發(fā)送soap請求報文
                output.write(b,0,b.length);
                output.flush();
                output.close();
                //定義輸入流,獲取soap報文
                InputStream input = conn.getInputStream();
                //設(shè)置編碼格式
                result = IOUtils.toString(input,"UTF-8");
                input.close();
            }
            System.out.println("請求返回報文:" + result);
        }catch (Exception e){
            System.out.println(e.getMessage());
        } 
    }

3.1參數(shù)說明

  • url:這個地址即wsdl文件地址去掉后綴  “?wsdl”。如此例就是:
  • wsdl
http://xxx.xxx.xxx.xxx:8081/APIService.svc?wsdl
  • url
http://xxx.xxx.xxx.xxx:8081/APIService.svc
  • params:這個即是請求的參數(shù)
  • host:這個是對方的主機地址和端口號。 如此例為:  xxx.xxx.xxx.xxx:8081
  • SOAPAction:具體service路徑

用post請求調(diào)用webservice

先說下遇到的坑,最先用post請求的時候一直返回500的錯誤碼

最終通過打印錯誤信息分析,請求頭必須添加SOAPAction

//請求頭必須設(shè)置SOAPAction
connection.setRequestProperty("SOAPAction","application/soap+xml; charset=utf-8");?

xml轉(zhuǎn)json需要用到hutool-all-4.0.12.jar,解析json比xml要簡單得多。

如果不需要用xml轉(zhuǎn)json,除需要jdk自帶的包不再需要引入其他的包。

package com.baidu.util; 
import cn.hutool.json.XML;
import net.sf.json.JSONObject; 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
 
/**
 * @author 藍珂一劍
 * @version 1.0.0
 * @ClassName SoapUtil.java
 * @Description webservice調(diào)用工具類
 * @createTime 2020/9/29 10:37
 */
public class SoapUtil {
 
    /**
     * 發(fā)送http post調(diào)用webservice
     *
     * @param strUrl
     * @param requestSoapXml
     * @return
     * @throws IOException
     */
    public static String soapPost(String strUrl, String requestSoapXml) throws IOException {
        //第一步:創(chuàng)建服務(wù)地址,不是WSDL地址
        URL url = new URL(strUrl);
        //第二步:打開一個通向服務(wù)地址的連接
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        //第三步:設(shè)置參數(shù)
        //3.1發(fā)送方式設(shè)置:POST必須大寫
        connection.setRequestMethod("POST");
        //3.2設(shè)置數(shù)據(jù)格式:content-type
        connection.setRequestProperty("content-type", "text/xml;charset=utf-8");
        //3.3設(shè)置輸入輸出,因為默認新創(chuàng)建的connection沒有讀寫權(quán)限,
        connection.setDoInput(true);
        connection.setDoOutput(true);
        //請求頭必須設(shè)置SOAPAction
        connection.setRequestProperty("SOAPAction","application/soap+xml; charset=utf-8");
        //第四步:組織SOAP數(shù)據(jù),發(fā)送請求
        OutputStream os = connection.getOutputStream();
        //os.write(requestSoapXml.getBytes());這個方法遇到一個大坑記錄下
        //當時在開發(fā)工具中通過這個方法調(diào)用接口一切都OK,但是放到客戶服務(wù)器上發(fā)送post
        //請求就返回500錯誤,錯誤信息太少,走了很多彎路,百度無果后,
        //后面靈機一動,會不會是傳輸?shù)臄?shù)據(jù)編碼不對,
        //導致接口服務(wù)端解析請求數(shù)據(jù)報錯從而返回500錯誤碼,
        //其實我是不知道服務(wù)端到底用的什么編碼,
        //經(jīng)過嘗試 os.write(requestSoapXml.getBytes("utf-8"));
        //結(jié)果成功了,根據(jù)實際情況這個編碼會改動
        os.write(requestSoapXml.getBytes());
        //第五步:接收服務(wù)端響應(yīng),打印
        int responseCode = connection.getResponseCode();
        //==============打印錯誤信息
//        try{
//            InputStream iss = connection.getErrorStream();    //通過getErrorStream了解錯誤的詳情
//            InputStreamReader isrs = new InputStreamReader(iss,"utf-8");
//            BufferedReader ins = new BufferedReader(isrs);
//            String inputLine;
//            BufferedWriter bws = new BufferedWriter(new OutputStreamWriter(
//                    new FileOutputStream("result.xml")));// 將結(jié)果存放的位置
//            while ((inputLine = ins.readLine()) != null)
//            {
//                System.out.println(inputLine);
//                bws.write(inputLine);
//                bws.newLine();
//
//            }
//            bws.close();
//        }catch (Exception e){
//
//        }
        //==============
        StringBuilder sb = new StringBuilder();
        if (200 == responseCode) {//表示服務(wù)端響應(yīng)成功
            InputStream is = connection.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
 
            String temp = null;
            while (null != (temp = br.readLine())) {
                sb.append(temp);
            }
            is.close();
            isr.close();
            br.close();
        }else{
            throw new RuntimeException("調(diào)用webservice失?。悍?wù)器端返回HTTP code " + responseCode + "信息:" );
        }
 
        os.close();
        return sb.toString(); 
    }
    
    public static void main(String[] args)  {
        String url = "http://192.168.100.86:6888/ormrpc/services/WSImpExtFaCardFacade";
        String p = "<soapenv:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://webservice.app.manage.fa.fi.eas.kingdee.com\">\n" +
                "   <soapenv:Header/>\n" +
                "   <soapenv:Body>\n" +
                "      <web:impFaCard soapenv:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\">\n" +
                "         <jsonStr xsi:type=\"xsd:string\">{\"header\":{\"bizcode\":\"42AC39EC\",\"bizdate\":\"2020-10-12\"},\"datas\":[{\"companynum\":\"D01\",\"facatnum\":\"04\",\"number\":\"JD04202010120000175\",\"oldnumber\":\"\",\"assetname\":\"服務(wù)器\",\"assetamount\":\"1\",\"measureunitnum\":\"件\",\"recorddate\":\"2020-10-12\",\"fiaccountdate\":\"2020-10-12\",\"originnum\":\"00101\",\"fausestatusnum\":\"101\",\"economypurposenum\":\"001\",\"storecitynum\":\"001\",\"specs\":\" \",\"parea\":\"\",\"manufacturer\":\"\",\"leavefactorydate\":\"\",\"paperno\":\"\",\"fromunit\":\"-1\",\"deptnum\":\"JD.001\",\"keepernum\":\"EP17019484\",\"remark\":\"\",\"currencynum\":\"BB01\",\"exchangerate\":\"1\",\"originalamount\":\"12000.0\",\"additiveamount\":\"0\",\"localamount\":\"12000.0\",\"inputtax\":\"0\",\"fairvalue\":\"0\",\"buyoriginalvalue\":\"0\",\"buyaddupdep\":\"0\",\"treatmentincome\":\"0\",\"deliverdate\":\"\",\"startdate\":\"2020-10-12\",\"expuseyears\":\"5\",\"expuseperiod\":\"60\",\"depperiod\":\"0\",\"addupdep\":\"0\",\"neatleftrate\":\"0\",\"expneatleftvalue\":\"3600.0\",\"neatvalue\":\"12000.0\",\"addupdepthisyear\":\"0\",\"decprepare\":\"0\",\"neatamount\":\"12000.0\",\"deprmethodnum\":\"0\",\"measureunitwlnum\":\"\",\"accountassetsnum\":\"04\",\"accountaccudeprnum\":\"04\",\"accountdecvaluenum\":\"04\",\"initevalvalue\":\"0\",\"evalperiodleft\":\"0\",\"accudeprall\":\"0\",\"hasdisabled\":\"0\",\"addonfare\":\"0\",\"monthrate\":\"0\",\"wrtyperiod\":\"\",\"wrtynumber\":\"\",\"groupnumber\":\"\",\"barcode\":\"JD04202010120000175\",\"usedepartmentnum\":\"JD.001\",\"usepersonnum\":\"\",\"usage\":\"\",\"asstacttypenum\":\"CBZX\",\"asstactitemnum\":\"Y0101\",\"accountnum\":\"6602.05\",\"apportionscale\":\"100\"},{\"companynum\":\"D01\",\"facatnum\":\"04\",\"number\":\"JD04202010120000176\",\"oldnumber\":\"\",\"assetname\":\"服務(wù)器\",\"assetamount\":\"1\",\"measureunitnum\":\"件\",\"recorddate\":\"2020-10-12\",\"fiaccountdate\":\"2020-10-12\",\"originnum\":\"00101\",\"fausestatusnum\":\"101\",\"economypurposenum\":\"001\",\"storecitynum\":\"001\",\"specs\":\" \",\"parea\":\"\",\"manufacturer\":\"\",\"leavefactorydate\":\"\",\"paperno\":\"\",\"fromunit\":\"-1\",\"deptnum\":\"JD.001\",\"keepernum\":\"EP17019484\",\"remark\":\"\",\"currencynum\":\"BB01\",\"exchangerate\":\"1\",\"originalamount\":\"12000.0\",\"additiveamount\":\"0\",\"localamount\":\"12000.0\",\"inputtax\":\"0\",\"fairvalue\":\"0\",\"buyoriginalvalue\":\"0\",\"buyaddupdep\":\"0\",\"treatmentincome\":\"0\",\"deliverdate\":\"\",\"startdate\":\"2020-10-12\",\"expuseyears\":\"5\",\"expuseperiod\":\"60\",\"depperiod\":\"0\",\"addupdep\":\"0\",\"neatleftrate\":\"0\",\"expneatleftvalue\":\"3600.0\",\"neatvalue\":\"12000.0\",\"addupdepthisyear\":\"0\",\"decprepare\":\"0\",\"neatamount\":\"12000.0\",\"deprmethodnum\":\"0\",\"measureunitwlnum\":\"\",\"accountassetsnum\":\"04\",\"accountaccudeprnum\":\"04\",\"accountdecvaluenum\":\"04\",\"initevalvalue\":\"0\",\"evalperiodleft\":\"0\",\"accudeprall\":\"0\",\"hasdisabled\":\"0\",\"addonfare\":\"0\",\"monthrate\":\"0\",\"wrtyperiod\":\"\",\"wrtynumber\":\"\",\"groupnumber\":\"\",\"barcode\":\"JD04202010120000176\",\"usedepartmentnum\":\"JD.001\",\"usepersonnum\":\"\",\"usage\":\"\",\"asstacttypenum\":\"CBZX\",\"asstactitemnum\":\"Y0101\",\"accountnum\":\"6602.05\",\"apportionscale\":\"100\"},{\"companynum\":\"D01\",\"facatnum\":\"04\",\"number\":\"JD04202010120000177\",\"oldnumber\":\"\",\"assetname\":\"服務(wù)器\",\"assetamount\":\"1\",\"measureunitnum\":\"件\",\"recorddate\":\"2020-10-12\",\"fiaccountdate\":\"2020-10-12\",\"originnum\":\"00101\",\"fausestatusnum\":\"101\",\"economypurposenum\":\"001\",\"storecitynum\":\"001\",\"specs\":\" \",\"parea\":\"\",\"manufacturer\":\"\",\"leavefactorydate\":\"\",\"paperno\":\"\",\"fromunit\":\"-1\",\"deptnum\":\"JD.001\",\"keepernum\":\"EP17019484\",\"remark\":\"\",\"currencynum\":\"BB01\",\"exchangerate\":\"1\",\"originalamount\":\"12000.0\",\"additiveamount\":\"0\",\"localamount\":\"12000.0\",\"inputtax\":\"0\",\"fairvalue\":\"0\",\"buyoriginalvalue\":\"0\",\"buyaddupdep\":\"0\",\"treatmentincome\":\"0\",\"deliverdate\":\"\",\"startdate\":\"2020-10-12\",\"expuseyears\":\"5\",\"expuseperiod\":\"60\",\"depperiod\":\"0\",\"addupdep\":\"0\",\"neatleftrate\":\"0\",\"expneatleftvalue\":\"3600.0\",\"neatvalue\":\"12000.0\",\"addupdepthisyear\":\"0\",\"decprepare\":\"0\",\"neatamount\":\"12000.0\",\"deprmethodnum\":\"0\",\"measureunitwlnum\":\"\",\"accountassetsnum\":\"04\",\"accountaccudeprnum\":\"04\",\"accountdecvaluenum\":\"04\",\"initevalvalue\":\"0\",\"evalperiodleft\":\"0\",\"accudeprall\":\"0\",\"hasdisabled\":\"0\",\"addonfare\":\"0\",\"monthrate\":\"0\",\"wrtyperiod\":\"\",\"wrtynumber\":\"\",\"groupnumber\":\"\",\"barcode\":\"JD04202010120000177\",\"usedepartmentnum\":\"JD.001\",\"usepersonnum\":\"\",\"usage\":\"\",\"asstacttypenum\":\"CBZX\",\"asstactitemnum\":\"Y0101\",\"accountnum\":\"6602.05\",\"apportionscale\":\"100\"},{\"companynum\":\"D01\",\"facatnum\":\"04\",\"number\":\"JD04202010120000178\",\"oldnumber\":\"\",\"assetname\":\"服務(wù)器\",\"assetamount\":\"1\",\"measureunitnum\":\"件\",\"recorddate\":\"2020-10-12\",\"fiaccountdate\":\"2020-10-12\",\"originnum\":\"00101\",\"fausestatusnum\":\"101\",\"economypurposenum\":\"001\",\"storecitynum\":\"001\",\"specs\":\" \",\"parea\":\"\",\"manufacturer\":\"\",\"leavefactorydate\":\"\",\"paperno\":\"\",\"fromunit\":\"-1\",\"deptnum\":\"JD.001\",\"keepernum\":\"EP17019484\",\"remark\":\"\",\"currencynum\":\"BB01\",\"exchangerate\":\"1\",\"originalamount\":\"12000.0\",\"additiveamount\":\"0\",\"localamount\":\"12000.0\",\"inputtax\":\"0\",\"fairvalue\":\"0\",\"buyoriginalvalue\":\"0\",\"buyaddupdep\":\"0\",\"treatmentincome\":\"0\",\"deliverdate\":\"\",\"startdate\":\"2020-10-12\",\"expuseyears\":\"5\",\"expuseperiod\":\"60\",\"depperiod\":\"0\",\"addupdep\":\"0\",\"neatleftrate\":\"0\",\"expneatleftvalue\":\"3600.0\",\"neatvalue\":\"12000.0\",\"addupdepthisyear\":\"0\",\"decprepare\":\"0\",\"neatamount\":\"12000.0\",\"deprmethodnum\":\"0\",\"measureunitwlnum\":\"\",\"accountassetsnum\":\"04\",\"accountaccudeprnum\":\"04\",\"accountdecvaluenum\":\"04\",\"initevalvalue\":\"0\",\"evalperiodleft\":\"0\",\"accudeprall\":\"0\",\"hasdisabled\":\"0\",\"addonfare\":\"0\",\"monthrate\":\"0\",\"wrtyperiod\":\"\",\"wrtynumber\":\"\",\"groupnumber\":\"\",\"barcode\":\"JD04202010120000178\",\"usedepartmentnum\":\"JD.001\",\"usepersonnum\":\"\",\"usage\":\"\",\"asstacttypenum\":\"CBZX\",\"asstactitemnum\":\"Y0101\",\"accountnum\":\"6602.05\",\"apportionscale\":\"100\"},{\"companynum\":\"D01\",\"facatnum\":\"04\",\"number\":\"JD04202010120000179\",\"oldnumber\":\"\",\"assetname\":\"服務(wù)器\",\"assetamount\":\"1\",\"measureunitnum\":\"件\",\"recorddate\":\"2020-10-12\",\"fiaccountdate\":\"2020-10-12\",\"originnum\":\"00101\",\"fausestatusnum\":\"101\",\"economypurposenum\":\"001\",\"storecitynum\":\"001\",\"specs\":\" \",\"parea\":\"\",\"manufacturer\":\"\",\"leavefactorydate\":\"\",\"paperno\":\"\",\"fromunit\":\"-1\",\"deptnum\":\"JD.001\",\"keepernum\":\"EP17019484\",\"remark\":\"\",\"currencynum\":\"BB01\",\"exchangerate\":\"1\",\"originalamount\":\"12000.0\",\"additiveamount\":\"0\",\"localamount\":\"12000.0\",\"inputtax\":\"0\",\"fairvalue\":\"0\",\"buyoriginalvalue\":\"0\",\"buyaddupdep\":\"0\",\"treatmentincome\":\"0\",\"deliverdate\":\"\",\"startdate\":\"2020-10-12\",\"expuseyears\":\"5\",\"expuseperiod\":\"60\",\"depperiod\":\"0\",\"addupdep\":\"0\",\"neatleftrate\":\"0\",\"expneatleftvalue\":\"3600.0\",\"neatvalue\":\"12000.0\",\"addupdepthisyear\":\"0\",\"decprepare\":\"0\",\"neatamount\":\"12000.0\",\"deprmethodnum\":\"0\",\"measureunitwlnum\":\"\",\"accountassetsnum\":\"04\",\"accountaccudeprnum\":\"04\",\"accountdecvaluenum\":\"04\",\"initevalvalue\":\"0\",\"evalperiodleft\":\"0\",\"accudeprall\":\"0\",\"hasdisabled\":\"0\",\"addonfare\":\"0\",\"monthrate\":\"0\",\"wrtyperiod\":\"\",\"wrtynumber\":\"\",\"groupnumber\":\"\",\"barcode\":\"JD04202010120000179\",\"usedepartmentnum\":\"JD.001\",\"usepersonnum\":\"\",\"usage\":\"\",\"asstacttypenum\":\"CBZX\",\"asstactitemnum\":\"Y0101\",\"accountnum\":\"6602.05\",\"apportionscale\":\"100\"}]}</jsonStr>\n" +
                "      </web:impFaCard>\n" +
                "   </soapenv:Body>\n" +
                "</soapenv:Envelope>";
       try{
           String response = SoapUtil.soapPost(url,p);
           cn.hutool.json.JSONObject data = XML.toJSONObject(response);
           //從data中解析rescode和resmsg,其中"rescode"為0時代表成功,其他均為失敗。
           String resMsg = data.getJSONObject("soapenv:Envelope").getJSONObject("soapenv:Body").getJSONObject("ns1:impFaCardResponse").getJSONObject("impFaCardReturn").getStr("content");
           JSONObject jsonObject = JSONObject.fromObject(resMsg);
           String bizcode = jsonObject.getString("bizcode");
           String bizdate = jsonObject.getString("bizdate");
           String rescode = jsonObject.getString("rescode");
           String resmsg = jsonObject.getString("resmsg");
           System.out.println(resmsg);
       }catch (Exception e){
           e.printStackTrace();
       }
    } 
}

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java?限制前端重復(fù)請求的實例代碼

    Java?限制前端重復(fù)請求的實例代碼

    這篇文章主要介紹了Java?限制前端重復(fù)請求,文中給大家提到了JAVA利用自定義本地鎖解決重復(fù)提交的問題,通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • SpringBoot+Vue實現(xiàn)EasyPOI導入導出的方法詳解

    SpringBoot+Vue實現(xiàn)EasyPOI導入導出的方法詳解

    項目開發(fā)過程中,很大的需求都有 導入導出功能。本文將利用SpringBoot+Vue實現(xiàn)EasyPOI導入導出功能,感興趣的可以了解一下
    2022-08-08
  • SpringMVC框架REST架構(gòu)體系原理分析

    SpringMVC框架REST架構(gòu)體系原理分析

    REST:Representational State Transfer,資源表現(xiàn)層狀態(tài)轉(zhuǎn)換,是目前&#12112;較主流的&#12032;種互聯(lián)網(wǎng)軟件架構(gòu),它結(jié)構(gòu)清晰、標準規(guī)范、易于理解、便于擴展
    2021-09-09
  • Spring中@ConfigurationProperties的用法解析

    Spring中@ConfigurationProperties的用法解析

    這篇文章主要介紹了Spring中@ConfigurationProperties的用法解析,傳統(tǒng)的Spring一般都是基本xml配置的,后來spring3.0新增了許多java config的注解,特別是spring boot,基本都是清一色的java config,需要的朋友可以參考下
    2023-11-11
  • 新手了解java基礎(chǔ)知識(一)

    新手了解java基礎(chǔ)知識(一)

    這篇文章主要介紹了Java基礎(chǔ)知識,本文介紹了Java語言相關(guān)的基礎(chǔ)知識、歷史介紹、主要應(yīng)用方向等內(nèi)容,需要的朋友可以參考下,希望對你有所幫助
    2021-07-07
  • 復(fù)雜JSON字符串轉(zhuǎn)換為Java嵌套對象的實現(xiàn)

    復(fù)雜JSON字符串轉(zhuǎn)換為Java嵌套對象的實現(xiàn)

    這篇文章主要介紹了復(fù)雜JSON字符串轉(zhuǎn)換為Java嵌套對象的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Springboot集成Camunda使用Mysql介紹

    Springboot集成Camunda使用Mysql介紹

    大家好,本篇文章主要講的是Springboot集成Camunda使用Mysql介紹,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • Java annotation元注解原理實例解析

    Java annotation元注解原理實例解析

    這篇文章主要介紹了Java annotation元注解原理實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Java中IO流簡介_動力節(jié)點Java學院整理

    Java中IO流簡介_動力節(jié)點Java學院整理

    Java io系統(tǒng)的設(shè)計初衷,就是為了實現(xiàn)“文件、控制臺、網(wǎng)絡(luò)設(shè)備”這些io設(shè)置的通信。接下來通過本文給大家介紹Java中IO流簡介,感興趣的朋友一起看看吧
    2017-05-05
  • 不寫mybatis的@Param有的報錯有的卻不報錯問題分析

    不寫mybatis的@Param有的報錯有的卻不報錯問題分析

    這篇文章主要為大家介紹了不寫mybatis的@Param有的報錯有的卻不報錯問題分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09

最新評論