该功能用于查询产品详情:前端
先上代码: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
成功返回