阶段5 3.微服务项目【学成在线】_day01 搭建环境 CMS服务端开发_20-页面查询服务端开发-创建CMS服务工程-测试Controller
要写的就是这个接口的实现
定义接口的实现类
实现接口内的方法
学过SpringMvc这里就可以使用springMvc注解来开发了。例如这里使用@RestController
@RestController相当于@Controller和@ResponseBody两个注解的集合。
@ResponseBody 作用就是把响应的就结果集转成json。
两个注解合二为一就是@RestController
起一个跟路径为/cms/page
@GetMapping相当于@RequestMapping里面使用get方式。
相当于通过url传参page和size
形参来接收。使用@PathVariable来接收
这里面有几个构造参数
ResultCode
QueryResult
CommonCode是一个枚举对象。
lombok插件的安装
参考网址:https://jingyan.baidu.com/article/0a52e3f4e53ca1bf63ed725c.html
IntelliJ IDEA lombok插件的安装和使用
在写代码的时候,发现没有自动给属性生成getter和setter方法
但是我的实体类里面已经加了@Data的注解
经过翻看第十八课的内容,发现lombok是需要装一个IDEA的插件。
然后可以点开 查看支持的注解。
install安装就可以了。这是安装后的了
然后还需要开启 Enabl annotation processing。这个我发现 我这里的model的工程是自动开启 的。所以没有再单独勾选。
然后再去写set属性的值。就不会再报错了
测试代码
最终返回一个QueryResponseResult
启动测试
请求的类型是get
json格式化后。code:操作代码 message:就是提示信息 success:是否操作成功
QueryResponseResult继承ResponseResult
ResponseResult里面有这三个属性的值
为什么在api里面定义接口,而不再cms的项目里面定义接口。
1.我们要在api里面统一的把接口管理起来。有一个统一的位置
如果要在cms这个微服务里面定义接口的话。如果我们的微服务特别多,那么接口分散在各个微服务里面。也就是不方便统一管理。
2.
将来微服务与微服务之间调用。如果接口分散在不同的微服务里面,如果服务A要调用服务B,那么服务A要依赖B才能把接口拿到。现在我把接口统一的在api工程里面了。所有的微服务只要依赖api。就轻而易举的拿到任意微服务的接口了。所以要把接口统一的在api里面管理
接口就是一个简单的Interface
接口实现类采用了SpringMVC的注解。假如有一天不用SpringMVC了,要用其他的web框架了。如果没有接口这一层的话,就要改一大堆地方,如果有接口这一层,那么接口这里就不用动。接口实现类只需要其他框架开发就可以。这旧增强了系统的可扩展性
以上就是定义接口和实现类。