該功能用於查詢產品詳情:前端
先上代碼:java
接下來咱們一行行解析代碼:ajax
@ApiOperation
不是spring自帶的註解,而是來自swagger裏的 com.wordnik.swagger.annotations.ApiOperation
(swagger見下面的Notes)spring
@ApiOperation
爲API添加相關注解,它的參數說明以下:sql
@ApiOperation(value = 「接口說明」, httpMethod = 「接口請求方式」, response = 「接口返回參數類型」, notes = 「接口發佈說明」;其餘參數可參考源碼;
複製代碼
Swagger 是一款RESTFUL接口的文檔在線自動生成+功能測試功能軟件。數據庫
Swagger 的目標是爲REST APIs定義一個標準的,與語言無關的接口,令人和計算機在看不到源碼或者看不到文檔或者不能經過網絡流量檢測的狀況下能發現和理解各類服務的功能。 使用時須要集成Swagger-springmvc到咱們的項目中。編程
若是想得到以下頁面,還須要集成Swagger-UI。 json
RequestMapping是一個用來處理請求地址映射的註解。api
@RequestMapping(value = "getprodinfo", method = RequestMethod.POST)
// value:指定請求的實際地址
// URL: /api/dm/getprodinfo,這個地址是項目的接口文檔裏提供的接口路徑,value與接口相對應
// method: 指定請求的method類型, GET、POST、PUT、DELETE等;
複製代碼
一、@RequestBody
須要把全部請求參數做爲json
解析,所以,不能包含key=value
這樣的寫法在請求url中,全部的請求參數都是一個json
。瀏覽器
二、直接經過瀏覽器輸入url時,@RequestBody
獲取不到json
對象,須要用java編程或者基於ajax
的方法請求,將Content-Type設置爲application/json
(關於application/json
參考www.cnblogs.com/Zhaols/p/62…)
由請求報文的表能夠看出用戶發送請求的參數是prodCode
方法getProdInfo
的入參是msg,即Msg,想獲得content須要將msg解析出來。
JSON.parseObject
是將Json字符串轉化爲相應的對象;
.getString
是取得string類型數據用。
IConstant.CONTENT
是在package com.cmge.foundation.contants
定義的接口靜態變量,放在同一個類中管理可使代碼更加清晰,定義形式以下:
/**
* 接口靜態變量
*/
public class IConstant {
/**
* 消息體
*/
public static final String CONTENT="content";
}
複製代碼
一、CorProductNewInfo
是在package com.cmge.foundation.vo.cor;
中定義的一個類:
這個類與數據庫裏的cor_product表相對應,定義了一些變量,而且每一個變量有其默認的get、set方法。
package com.cmge.foundation.vo.cor;
public class CorProductNewInfo {
private Integer id;
private String prodCode;
……
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getProdCode() {
return prodCode;
}
public void setProdCode(String prodCode) {
this.prodCode = prodCode;
}
複製代碼
數據庫中的字段:
二、findCorProductByProdCode
是在package com.cmge.foundation.service.cor;
中定義的接口:
接口須要實現,此接口是在package com.cmge.foundation.impl.cor;
中實現的。
這裏傳入的參數是proCode,與前面相對應。
return的同名方法屬於corProductMapper
,是dao層的,dao層的mapper.java文件爲其提供定義的interface,其實現直接是數據庫的查詢,在.xml文件中。複製此方法名稱,在CorProductMapper.xml文件中找到此方法。
corProductMapper與CorProductMapper文件對應上是經過以下代碼(與上一段代碼在同一個類裏)
在CorProductMapper.xml
文件中的此方法,能夠完成對數據庫的查詢:
CorProductMapper.java
是dao層的java文件。
CorProductMapper.xml
與 CorProductMapper.java
是經過mybatis結合的,.java文件也有同名函數,以下:
CorProductNewInfo
這裏回頭與service裏的方法對比一下:
reContent.put("user", obj);
複製代碼
obj是以前聲明的一個類的對象,好比爲user1,那麼就是把user這個對象放到了map容器中了,其中user只是對象的代號。
也能夠在調用的時候取出,代碼爲
reContent.get(user);
複製代碼
參數是前面寫的代號,獲得的是user1這個對象。
注意最後一句要把reContent
成功返回