从b站学习springcloud项目,现在进行总结,该总结除去了视频中出现的小错误,对有些易错的地方进行了提醒
b站链接:https://www.bilibili.com/video/av55629580?p=1
资料链接:
https://pan.baidu.com/s/1o0Aju3IydKA15Vo1pP4z5w
提取码: 21ru
上一节链接:
https://blog.csdn.net/qq_40893824/article/details/103550920
下一节链接:
https://blog.csdn.net/qq_40893824/article/details/103597495
下面的内容总结:
client/static复制文件→修改index.html的代码→ClientHandler.java添加代码(后台映射inedx)→测试→
menu添加entity/MenuVO实体类→修改menu/MenuHandler.java中findAll→
MenuVO复制至client/entity→修改client/feign/MenuFeign.java中findAll代码
实现细节:
1.在client/resources中创包static,进入网页https://github.com/southwind9801/orderingsystem,将其下载,在路径clientfeign\src\main\resources\static下将其文件复制至idea中client/resources/static中,如图:
2.在static/index.html的代码中找到56-62代码,将其删除
<script>
//二级菜单联动
layui.use('element', function(){
var element = layui.element;
});
</script>
第13行找到“ < a href="/account/redirect/order" th:text="${session.user.nickname}"></ a>< a href="/account/logout"> ”将其删除
在36行找到 return data.type.name 改为 return ‘三鲜’
3.在index.html代码中第2,7,20行中有th标签,所以必须在后台进行映射!
在client/ClientHandler中加入代码:
@GetMapping("/redirect/{location}")
public String redirect(@PathVariable("location")String location){
return location;
}
在ClientHandler.java中
@RestController返回数据,@Controller返回视图,对应redirect,若用@RestController,则返回”index.html
目前完整的ClientHandler:
package com.southwind.controller;
import com.southwind.entity.Menu;
import com.southwind.feign.MenuFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
/*
@RestController返回数据
@Controller返回视图,对应redirect,若用@RestController,则返回”index.html“
*/
@RequestMapping("/client")
public class ClientHandler {
@Autowired
private MenuFeign menuFeign;
@GetMapping("/findAll/{index}/{limit}")
public List<Menu> findAll(@PathVariable("index")int index , @PathVariable("limit")int limit){
return menuFeign.findAll(index , limit);
}
@GetMapping("/redirect/{location}")
public String redirect(@PathVariable("location")String location){
return location;
}
}
4.重启 client 进入http://localhost:8030/client/redirect/index
5.接口异常,继续修改!
在index.html里27行的url:’/menu/findAll’改为,url:’/client/findAll’
在ClientHandler.java里修改findAll:
@GetMapping("/findAll")
@ResponseBody
public List<Menu> findAll(@RequestParam("page") int page , @RequestParam("limit") int limit){
int index = (page - 1)*limit;
return menuFeign.findAll(index , limit);
}
6.重启 client 进入http://localhost:8030/client/findAll?page=1&limit=10
说明findAll可以调通!
但是进入http://localhost:8030/client/redirect/index
数据返回错误!
所以要在menu中定义返回数据的类型
7.进入menu的entity新建(返回数据)实体类MenuVO,加入代码:
package com.southwind.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MenuVO {
private int code;
private String name;
private int count;
private List<Menu> data;
}
8.在menu的MenuHandler.java中修改findAll:
@GetMapping("/findAll/{index}/{limit}")
public MenuVO findAll(@PathVariable("index") int index , @PathVariable("limit") int limit){
return new MenuVO(0,"",100,menuRepository.findAll(index , limit));
}
9.将MenuVO复制至client/entity中,在client的feign中修改Menufeign中的findAll,其类型是MenuVO
package com.southwind.feign;
import com.southwind.entity.MenuVO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
@FeignClient(value = "menu")
public interface MenuFeign {
@GetMapping("/menu/findAll/{index}/{limit}")
public MenuVO findAll(@PathVariable("index")int index , @PathVariable("limit")int limit);
}
10.在client/ClientHandler中修改findAll变为:
@GetMapping("/findAll")
@ResponseBody
public MenuVO findAll(@RequestParam("page") int page , @RequestParam("limit") int limit){
int index = (page - 1)*limit;
return menuFeign.findAll(index, limit);
}
11.重启 menu 和 client 进入http://localhost:8030/client/redirect/index
视图就出现了!
上一节链接:
https://blog.csdn.net/qq_40893824/article/details/103550920
下一节链接:
https://blog.csdn.net/qq_40893824/article/details/103597495