springclouddemo4.1-整合feign

**从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/103597495
下一节链接:
https://blog.csdn.net/qq_40893824/article/details/103609138

下面的内容总结:
(页面删除)client/index→client/MenuFeign→menu/MenuHandler→client/ClientHandler→检查→

(页面添加数据)改名→ menu/TypeRepository→menu/MenuHandler→client/MenuFeign→
client/MenuHandler→client/MenuFeign→client/MenuHandler→
menu/MenuHandler→client/MenuFeign→client/MenuHandler→menu/MenuRepository.xml

实现细节:
1.在http://localhost:8030/client/redirect/index中操作那一栏,想变为 修改 和 删除 两个操作
在client/index.html 代码中第18行

<a class="layui-btn layui-btn-xs" lay-event="order">订购</a>

变为:

<a class="layui-btn layui-btn-xs" lay-event="update">修改</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>

这两行代码不需要去记
2.那么18、19行的修改和删除怎么实现功能?
49-55行代码可对应两个功能(//监听行工具事件),代码如下:

			//监听行工具事件
            table.on('tool(test)', function(obj){
                var data = obj.data;
                if(obj.event === 'update'){
                    layer.alert('修改');
                }
                else if( obj.event === 'del'){
                    layer.confirm('确认要删除吗?' , function () {
                      window.location.href = "/client/deleteById/" + data.id;
                      layer.close();
                    })
                }
            });

在这里插入图片描述
33-43行代码修改:width
菜品 170
口味 70
操作130
3.重启 client 进入 http://localhost:8030/client/redirect/index
在这里插入图片描述
界面还是比较好看
修改和删除:
在这里插入图片描述
4.没完
修改49-61代码:
53行 layer.alert(‘修改’); 改为 window.location.href = “/client/findById/” + data.id;
5.在client/feign/Menufeign中添加代码:

    @DeleteMapping("/menu/deleteById/{id}")
    public void deleteById(@PathVariable("id")long id);

6.同时在menu/controller/MenuHandler中添加代码:

	@DeleteMapping("/deleteById/{id}")
    public void deleteById(@PathVariable("id")long id){
        menuRepository.deleteById(id);
    }

这时再回到client/controller/ClientHandler中添加代码:
注意这里是@GetMapping !

    @GetMapping("/deleteById/{id}")
    public String deleteById(@PathVariable("id")long id){
        menuFeign.deleteById(id);
        return "redirect:/client/redirect/index";
    }

现在手动在手机库的t_menu中添加几条测试数据
在这里插入图片描述
7.重启menu、client
进入 http://localhost:8030/client/redirect/index 的第二页删除最后一条数据
在这里插入图片描述
删除后:
在这里插入图片描述
删除成功!

还有更新功能,但先实现添加数据功能!
1.后期要对account、order、user进行处理
所以对client/controller/ClientHandler改名为MenuHandler,且对里面的@RequestMapping("/client")改为@RequestMapping("/menu")
deleteById中路径client改为menu

同时在client/index中49-61行路径由client改为menu,28行client改为menu(即 url:’/menu/findAll’),说明一下:url对应的menu/findAll对应的是client/controller/MenuHandler中的findAll!
在这里插入图片描述
2.1可以看到menu/repository/TypeRepository中有findAll接口了
进入menu/resources/mapping/TypeRepository添加代码:

	<select id="findAll" resultType = "Type">
		select * from t_type
	</select>

2.2然后进入menu/controller/MenuHandler添加代码:

	@Autowired
    private TypeRepository typeRepository;

    @GetMapping("/findTypes")
    public List<Type>findTypes(){
        return typeRepository.findAll();
    }

2.3然后进入client/feign/MenuFeign添加代码:
注意路径不要少了menu

    @GetMapping("/menu/findTypes")
    public List<Type> findTypes();

2.4再进入client/controller/MenuHandler添加代码:

    @GetMapping("/findTypes")
    public ModelAndView findTypes(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("menu_add");
        modelAndView.addObject("list" , menuFeign.findTypes());
        return modelAndView;
    }

2.5 重启menu client 进入 http://localhost:8030/menu/findTypes
在这里插入图片描述
页面成功加载
3.进入client/static/menu_add.html可以看到需要实现一个save方法
3.1在menu/MenuHandler中添加代码:(一下子把功能下完算了)
@RequestBody不能省!

    @PostMapping("/save")
    public void save(@RequestBody Menu menu){
        menuRepository.save(menu);
    }

    @GetMapping("/findById/{id}")
    public Menu findById(@PathVariable("id")long id){
        return menuRepository.findById(id);
    }

    @PutMapping("/update")
    public void update(@RequestBody Menu menu){
        menuRepository.update(menu);
    }

3.2进入client/feign/MenuFeign添加代码:

    @PostMapping("/menu/save")
    public void save(@RequestBody Menu menu);

3.3进入client/controller/MenuHandler中添加代码:(路径是menu哦,因为之前改名字了),这里不加@RequestBody !

    @PostMapping("/save")
    public String save( Menu menu){
        menuFeign.save(menu);
        return "redirect:/menu/redirect/index";
    }

3.4进入menu/resources/mapping/MenuRepository.xml中修改< insert >save,就是加入tid:

	<insert id="save" parameterType="Menu">
		insert into t_menu(name,price,flavor,tid) values(#{name},#{price},#{flavor},#{type.id})
	</insert>

3.5 重启menu client 进入 http://localhost:8030/menu/findTypes
在这里插入图片描述
在这里插入图片描述
添加成功!

上一节链接:
https://blog.csdn.net/qq_40893824/article/details/103597495
下一节链接:
https://blog.csdn.net/qq_40893824/article/details/103609138

发布了42 篇原创文章 · 获赞 2 · 访问量 1184

猜你喜欢

转载自blog.csdn.net/qq_40893824/article/details/103600462