Java如何使用HTTPclient訪問url獲得數(shù)據(jù)
使用HTTPclient訪問url獲得數(shù)據(jù)
最近項目上有個小功能需要調(diào)用第三方的http接口取數(shù)據(jù),用到了HTTPclient,算是做個筆記吧!
1、使用get方法取得數(shù)據(jù)
/**
* 根據(jù)URL試用get方法取得返回的數(shù)據(jù)
* @param url
* URL地址,參數(shù)直接掛在URL后面即可
* @return
*/
public static String getGetDateByUrl(String url){
String data = null;
//構造HttpClient的實例
HttpClient httpClient = new HttpClient();
//創(chuàng)建GET方法的實例
GetMethod getMethod = new GetMethod(url);
//設置頭信息:如果不設置User-Agent可能會報405,導致取不到數(shù)據(jù)
getMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0");
//使用系統(tǒng)提供的默認的恢復策略
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
try{
//開始執(zhí)行getMethod
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed:" + getMethod.getStatusLine());
}
//讀取內(nèi)容
byte[] responseBody = getMethod.getResponseBody();
//處理內(nèi)容
data = new String(responseBody);
}catch (HttpException e){
//發(fā)生異常,可能是協(xié)議不對或者返回的內(nèi)容有問題
System.out.println("Please check your provided http address!");
data = "";
e.printStackTrace();
}catch(IOException e){
//發(fā)生網(wǎng)絡異常
data = "";
e.printStackTrace();
}finally{
//釋放連接
getMethod.releaseConnection();
}
return data;
}
2、使用POST方法取得數(shù)據(jù)
/**
* 根據(jù)post方法取得返回數(shù)據(jù)
* @param url
* URL地址
* @param array
* 需要以post形式提交的參數(shù)
* @return
*/
public static String getPostDateByUrl(String url,Map<String ,String> array){
String data = null;
//構造HttpClient的實例
HttpClient httpClient = new HttpClient();
//創(chuàng)建post方法的實例
PostMethod postMethod = new PostMethod(url);
//設置頭信息
postMethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:39.0) Gecko/20100101 Firefox/39.0");
postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
//遍歷設置要提交的參數(shù)
Iterator it = array.entrySet().iterator();
while (it.hasNext()){
Map.Entry<String,String> entry =(Map.Entry) it.next();
String key = entry.getKey();
String value = entry.getValue().trim();
postMethod.setParameter(key,value);
}
//使用系統(tǒng)提供的默認的恢復策略
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
try{
//執(zhí)行postMethod
int statusCode = httpClient.executeMethod(postMethod);
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed:" + postMethod.getStatusLine());
}
//讀取內(nèi)容
byte[] responseBody = postMethod.getResponseBody();
//處理內(nèi)容
data = new String(responseBody);
}catch (HttpException e){
//發(fā)生致命的異常,可能是協(xié)議不對或者返回的內(nèi)容有問題
System.out.println("Please check your provided http address!");
data = "";
e.printStackTrace();
}catch(IOException e){
//發(fā)生網(wǎng)絡異常
data = "";
e.printStackTrace();
}finally{
//釋放連接
postMethod.releaseConnection();
}
System.out.println(data);
return data;
}
使用httpclient后臺調(diào)用url方式
使用httpclient調(diào)用后臺的時候接收url類型的參數(shù)需要使用UrlDecoder解碼,調(diào)用的時候需要對參數(shù)使用UrlEncoder對參數(shù)進行編碼,然后調(diào)用。
@SuppressWarnings("deprecation")
@RequestMapping(value = "/wechatSigns", produces = "application/json;charset=utf-8")
@ResponseBody
public String wechatSigns(HttpServletRequest request, String p6, String p13) {
Map<String, String> ret = new HashMap<String, String>();
try {
System.out.println("*****************************************p6:"+p6);
URLDecoder.decode(p13);
System.out.println("*****************************************p13:"+p13);
String p10 = "{\"p1\":\"1\",\"p2\":\"\",\"p6\":\"" + p6 + "\",\"p13\":\"" + p13 + "\"}";
p10 = URLEncoder.encode(p10, "utf-8");
String url = WebserviceUtil.getGetSignatureUrl() + "?p10=" + p10;
String result = WebConnectionUtil.sendGetRequest(url);
JSONObject fromObject = JSONObject.fromObject(URLDecoder.decode(result, "utf-8"));
System.out.println(fromObject);
String resultCode = JSONObject.fromObject(fromObject.getString("meta")).getString("result");
if ("0".equals(resultCode)) {
JSONObject fromObject2 = JSONObject.fromObject(fromObject.get("data"));
String timestamp = fromObject2.getString("timestamp");
String appId = fromObject2.getString("appId");
String nonceStr = fromObject2.getString("nonceStr");
String signature = fromObject2.getString("signature");
ret.put("timestamp", timestamp);
ret.put("appId", appId);
ret.put("nonceStr", nonceStr);
ret.put("signature", signature);
JSONObject jo = JSONObject.fromObject(ret);
return ResultJsonBean.success(jo.toString());
} else {
String resultMsg = JSONObject.fromObject(fromObject.getString("meta")).getString("errMsg");
return ResultJsonBean.fail(ConnectOauthCodeInfo.REQ_WECHATTOCKEN_CODE, resultMsg, "");
}
} catch (Exception e) {
logger.error(e, e);
return ResultJsonBean.fail(ConnectOauthCodeInfo.REQ_WECHATREQERROE_CODE,
ConnectOauthCodeInfo.REQ_WECHATREQERROE_CODE, "");
}
}
<pre name="code" class="java">package com.dcits.djk.core.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import net.sf.json.JSONObject;
public class WebConnectionUtil {
public static String sendPostRequest(String url,Map paramMap,String userId){
CloseableHttpClient httpclient=null;
CloseableHttpResponse response=null;
try{
httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
if(userId != null || "".equals(userId) ){
formparams.add(new BasicNameValuePair("userId",userId));
}
Set keSet=paramMap.entrySet();
for(Iterator itr=keSet.iterator();itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object key=me.getKey();
Object valueObj=me.getValue();
String[] value=new String[1];
if(valueObj == null){
value[0] = "";
}else{
if(valueObj instanceof String[]){
value=(String[])valueObj;
}else{
value[0]=valueObj.toString();
}
}
for(int k=0;k<value.length;k++){
formparams.add(new BasicNameValuePair(key.toString(),StringUtil.filterSpecialChar(value[k])));
}
}
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
httppost.setEntity(uefEntity);
response = httpclient.execute(httppost);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
String resultInfo = EntityUtils.toString(entity, "UTF-8");
return resultInfo;
}else{
return response.getStatusLine().getStatusCode() + "";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclient != null){
httpclient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(response != null){
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "404";
}
public static String sendPostRequest(String url,Map paramMap){
CloseableHttpClient httpclient=null;
CloseableHttpResponse response=null;
try{
httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost(url);
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
Set keSet=paramMap.entrySet();
for(Iterator itr=keSet.iterator();itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object key=me.getKey();
Object valueObj=me.getValue();
String[] value=new String[1];
if(valueObj == null){
value[0] = "";
}else{
if(valueObj instanceof String[]){
value=(String[])valueObj;
}else{
value[0]=valueObj.toString();
}
}
for(int k=0;k<value.length;k++){
formparams.add(new BasicNameValuePair(key.toString(),StringUtil.filterSpecialChar(value[k])));
}
}
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
httppost.setEntity(uefEntity);
response = httpclient.execute(httppost);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
String resultInfo = EntityUtils.toString(entity, "UTF-8");
return resultInfo;
}else{
return response.getStatusLine().getStatusCode() + "";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclient != null){
httpclient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(response != null){
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "404";
}
public static String downloadFileToImgService(String remoteUtl,String imgUrl,String tempUrl){
CloseableHttpClient httpclientRemote=null;
CloseableHttpResponse responseRemote=null;
CloseableHttpClient httpclientImg=null;
CloseableHttpResponse responseImg=null;
try{
httpclientRemote = HttpClients.createDefault();
HttpGet httpgetRemote = new HttpGet(remoteUtl);
responseRemote = httpclientRemote.execute(httpgetRemote);
if(responseRemote.getStatusLine().getStatusCode() != 200){
return "";
}
HttpEntity resEntityRemote = responseRemote.getEntity();
InputStream isRemote = resEntityRemote.getContent();
//寫入文件
File file = null;
boolean isDownSuccess = true;
BufferedOutputStream bos = null;
try{
BufferedInputStream bif = new BufferedInputStream(isRemote);
byte bf[] = new byte[28];
bif.read(bf);
String suffix = FileTypeUtil.getSuffix(bf);
file = new File(tempUrl + "/" + UuidUtil.get32Uuid()+suffix);
bos = new BufferedOutputStream(new FileOutputStream(file));
if(!file.exists()){
file.createNewFile();
}
bos.write(bf, 0, 28);
byte b[] = new byte[1024*3];
int len = 0;
while((len=bif.read(b)) != -1){
bos.write(b, 0, len);
}
}catch(Exception e){
e.printStackTrace();
isDownSuccess = false;
}finally{
try {
if(bos != null){
bos.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
if(!isDownSuccess){
return "";
}
httpclientImg = HttpClients.createDefault();
HttpPost httpPostImg = new HttpPost(imgUrl);
MultipartEntityBuilder requestEntity = MultipartEntityBuilder.create();
requestEntity.addBinaryBody("userFile", file);
HttpEntity httprequestImgEntity = requestEntity.build();
httpPostImg.setEntity(httprequestImgEntity);
responseImg = httpclientImg.execute(httpPostImg);
if(responseImg.getStatusLine().getStatusCode() != 200){
return "";
}
HttpEntity entity = responseImg.getEntity();
String json = EntityUtils.toString(entity, "UTF-8");
json = json.replaceAll("\"","");
String[] jsonMap = json.split(",");
String resultInfo = "";
for(int i = 0;i < jsonMap.length;i++){
String str = jsonMap[i];
if(str.startsWith("url:")){
resultInfo = str.substring(4);
}else if(str.startsWith("{url:")){
resultInfo = str.substring(5);
}
}
if(resultInfo.endsWith("}")){
resultInfo = resultInfo.substring(0,resultInfo.length()-1);
}
try{
if(file != null){
file.delete();
}
}catch(Exception e){
e.printStackTrace();
}
return resultInfo;
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclientRemote != null){
httpclientRemote.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(responseRemote != null){
responseRemote.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(httpclientImg != null){
httpclientImg.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(responseImg != null){
responseImg.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
public static String downloadFileToImgService(File file,String imgUrl){
CloseableHttpClient httpclientImg=null;
CloseableHttpResponse responseImg=null;
try{
httpclientImg = HttpClients.createDefault();
HttpPost httpPostImg = new HttpPost(imgUrl);
MultipartEntityBuilder requestEntity = MultipartEntityBuilder.create();
requestEntity.addBinaryBody("userFile", file);
HttpEntity httprequestImgEntity = requestEntity.build();
httpPostImg.setEntity(httprequestImgEntity);
responseImg = httpclientImg.execute(httpPostImg);
if(responseImg.getStatusLine().getStatusCode() != 200){
return "";
}
HttpEntity entity = responseImg.getEntity();
String json = EntityUtils.toString(entity, "UTF-8");
json = json.replaceAll("\"","");
String[] jsonMap = json.split(",");
String resultInfo = "";
for(int i = 0;i < jsonMap.length;i++){
String str = jsonMap[i];
if(str.startsWith("url:")){
resultInfo = str.substring(4);
}else if(str.startsWith("{url:")){
resultInfo = str.substring(5);
}
}
if(resultInfo.endsWith("}")){
resultInfo = resultInfo.substring(0,resultInfo.length()-1);
}
return resultInfo;
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclientImg != null){
httpclientImg.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(responseImg != null){
responseImg.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "";
}
public static String sendGetRequest(String url){
CloseableHttpClient httpclient=null;
CloseableHttpResponse response=null;
try{
httpclient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet(url);
response = httpclient.execute(httpGet);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
String resultInfo = EntityUtils.toString(entity, "UTF-8");
return resultInfo;
}else{
return response.getStatusLine().getStatusCode() + "";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclient != null){
httpclient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(response != null){
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "404";
}
public static String sendHttpsPostRequestUseStream(String url,String param){
CloseableHttpClient httpclient=null;
CloseableHttpResponse response=null;
try{
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager xtm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
TrustManager[] tm = {xtm};
ctx.init(null,tm,null);
HostnameVerifier hv = new HostnameVerifier(){
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
};
httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build();
HttpPost httpPost = new HttpPost(url);
StringEntity strEntity = new StringEntity(param,"utf-8");
httpPost.setEntity(strEntity);
response = httpclient.execute(httpPost);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
String resultInfo = EntityUtils.toString(entity, "UTF-8");
return resultInfo;
}else{
return response.getStatusLine().getStatusCode() + "";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclient != null){
httpclient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(response != null){
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "404";
}
public static String sendHttpsPostRequestUseStream(String url,Map paramMap){
CloseableHttpClient httpclient=null;
CloseableHttpResponse response=null;
try{
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager xtm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
TrustManager[] tm = {xtm};
ctx.init(null,tm,null);
HostnameVerifier hv = new HostnameVerifier(){
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
};
httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build();
HttpPost httpPost = new HttpPost(url);
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
Set keSet=paramMap.entrySet();
for(Iterator itr=keSet.iterator();itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object key=me.getKey();
Object valueObj=me.getValue();
String[] value=new String[1];
if(valueObj == null){
value[0] = "";
}else{
if(valueObj instanceof String[]){
value=(String[])valueObj;
}else{
value[0]=valueObj.toString();
}
}
for(int k=0;k<value.length;k++){
formparams.add(new BasicNameValuePair(key.toString(),StringUtil.filterSpecialChar(value[k])));
}
}
UrlEncodedFormEntity uefEntity = new UrlEncodedFormEntity(formparams, "UTF-8");
httpPost.setEntity(uefEntity);
response = httpclient.execute(httpPost);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
String resultInfo = EntityUtils.toString(entity, "UTF-8");
return resultInfo;
}else{
return response.getStatusLine().getStatusCode() + "";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclient != null){
httpclient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(response != null){
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "404";
}
public static String sendHttpsGetRequestUseStream(String url){
CloseableHttpClient httpclient=null;
CloseableHttpResponse response=null;
try{
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager xtm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
TrustManager[] tm = {xtm};
ctx.init(null,tm,null);
HostnameVerifier hv = new HostnameVerifier(){
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
};
httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build();
HttpGet httpGet = new HttpGet(url);
response = httpclient.execute(httpGet);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
String resultInfo = EntityUtils.toString(entity, "UTF-8");
return resultInfo;
}else{
return response.getStatusLine().getStatusCode() + "";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclient != null){
httpclient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(response != null){
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "404";
}
public static String sendHttpsPostRequestUseStreamForYZL(String url,OauthToken param){
CloseableHttpClient httpclient=null;
CloseableHttpResponse response=null;
try{
SSLContext ctx = SSLContext.getInstance("TLS");
X509TrustManager xtm = new X509TrustManager() {
public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
}
public X509Certificate[] getAcceptedIssuers() {
return null;
}
};
TrustManager[] tm = {xtm};
ctx.init(null,tm,null);
HostnameVerifier hv = new HostnameVerifier(){
public boolean verify(String arg0, SSLSession arg1) {
return true;
}
};
httpclient = HttpClients.custom().setSSLHostnameVerifier(hv).setSSLContext(ctx).build();
HttpPost httpPost = new HttpPost(url);
StringEntity strEntity = new StringEntity(param.toString(),"utf-8");
httpPost.setEntity(strEntity);
httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");
response = httpclient.execute(httpPost);
if(response.getStatusLine().getStatusCode() == 200){
HttpEntity entity = response.getEntity();
String resultInfo = EntityUtils.toString(entity, "UTF-8");
return resultInfo;
}else{
return response.getStatusLine().getStatusCode() + "";
}
}catch(Exception e){
e.printStackTrace();
}finally{
try {
if(httpclient != null){
httpclient.close();
}
} catch (Exception e) {
e.printStackTrace();
}
try {
if(response != null){
response.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
return "404";
}
}
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java五種方式實現(xiàn)多線程循環(huán)打印問題
本文主要介紹了Java五種方式實現(xiàn)多線程循環(huán)打印問題,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-12-12
SpringBoot自動裝配Condition的實現(xiàn)方式
這篇文章主要介紹了SpringBoot自動裝配Condition的實現(xiàn)方式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
Java如何優(yōu)雅實現(xiàn)數(shù)組切片和拼接操作
在做一道算法題的時候用到數(shù)組合并,并且有性能要求,這里對Java數(shù)組合并進行總結(jié),下面這篇文章主要給大家介紹了關于Java如何優(yōu)雅實現(xiàn)數(shù)組切片和拼接操作的相關資料,需要的朋友可以參考下2024-04-04
在Spring中使用Knife4j進行API文檔生成與管理的操作方法
Knife4j 是為Java MVC 框架(如Spring Boot、Spring MVC等)集成 Swagger 生成 API 文檔的增強解決方案,它基于 Swagger 的核心功能,通過定制化的前端界面和一些額外的特性,本文介紹了在Spring中使用Knife4j進行API文檔生成與管理的操作方法,需要的朋友可以參考下2024-12-12
Spring MVC通過添加自定義注解格式化數(shù)據(jù)的方法
這篇文章主要給大家介紹了關于Spring MVC通過添加自定義注解格式化數(shù)據(jù)的方法,文中先對springmvc 自定義注解 以及自定義注解的解析進行了詳細的介紹,相信會對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11
java實現(xiàn)RedisTemplate操作哈希數(shù)據(jù)
RedisTemplate是Spring Data Redis提供的一個用于操作Redis的模板類,本文主要介紹了java實現(xiàn)RedisTemplate操作哈希數(shù)據(jù),具有一定的參考價值,感興趣的可以了解一下2024-09-09

