springcloud小案例 下
中国加油,武汉加油!
篇幅较长,请配合目录观看
项目准备
1. 案例
1.1 8083编写Controller
package com.wpj.controller;
import com.wpj.bean.Product;
import com.wpj.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class ProductController {
@Autowired
private ProductService productService;
@RequestMapping("/product_list")
public List<Product> getList(){
return productService.getProducts();
}
@RequestMapping("/product_addProduct")
public int addProduct(@RequestBody Product product){
return productService.addProduct(product);
}
@RequestMapping("/product_getById")
public Product getById(int id){
return productService.getById(id);
}
@RequestMapping("/product_delete")
public int deleteProduct(int id){
return productService.deleteProduct(id);
}
@RequestMapping("/product_updatebyId")
public int updateProduct(Product product){
return productService.updateById(product);
}
}
1.2 8082导包
<dependency>
<groupId>com.wpj</groupId>
<artifactId>springcloud-test-pojo</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
1.3 8082编写ProductClient
package com.wpj.api;
import com.wpj.bean.Product;
import com.wpj.bean.Type;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
@FeignClient(value = "springcloud-test-product-8083")
public interface ProductClient {
/**
* 05-根据ID更新
* @param product
* @return
*/
@RequestMapping("/product_updatebyId")
public int updateProduct(@RequestBody Product product);
/**
* 03-根据ID查询对象
* @param id
* @return
*/
@RequestMapping("/product_getById")
public Product getById(@RequestParam int id);
/**
* 02-新增
* @param product
* @return
*/
@RequestMapping("/product_addProduct")
public int addProduct(@RequestBody Product product);
/**
* 01-查询下拉框数据
* @return
*/
@RequestMapping("/product_types")
public List<Type> getTypes();
/**
* 04-根据ID删除
* @param id
* @return
*/
@RequestMapping("/product_delete")
public int deleteProduct(@RequestParam int id);
/**
* 01-查询
* @return
*/
@RequestMapping("/product_list")
public List<Product> getList();
}
1.4 8082编写Controller
package com.wpj.comtroller;
import com.wpj.api.ProductClient;
import com.wpj.bean.Product;
import com.wpj.bean.Type;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
@Controller
@Scope("prototype")
public class ProductController {
@Autowired
ProductClient productClient;
@RequestMapping("/product_list")
public String productList(Model model) {
List<Product> products = productClient.getList();
System.out.println("查询到的商品列表:" + products);
model.addAttribute("products", products);
//商品模板页面
return "products";
}
}
1.5 导入porducts.html
1.6 修改页面上的属性
1.7 启动程序入口并访问页面

2. 异步删除
2.1 修改页面
<td class="delete"><button th:onclick="|btn_delete(${p.pId})|"><i class="icon-trash bigger-120"></i>删除</button></td>
2.2 补全js脚本
var btn_delete = function(id) {
$.jq_Confirm({
message: "您确定要删除吗?",
btnOkClick: function() {
//这个位置同步删除? 异步删除?
$.ajax({
url:"/product_delete?id="+id,
type:"post",
dataType:"json",
success:function (result) {
if(result.code==200){
//删除当前行
$("#tr_"+id).hide(3000);
}else{
alert("删除失败");
}
}
});
}
});
}
本文详细介绍了使用SpringCloud搭建微服务架构的过程,包括编写Controller、导入依赖、实现远程调用等关键步骤,通过具体案例展示了如何进行商品管理,如增删改查操作,并实现了异步删除功能。
168万+

被折叠的 条评论
为什么被折叠?



