1、erueka-server
plication.properties
server.port=8761 spring.application.name=eureka eureka.client.serviceUrl.defaultZone=http://localhost:${server.port}/eureka/ eureka.client.register-with-eureka=false eureka.client.fetch-registry=false3.common-product
4、eureka-provider-one(two)
5、mapper
5.1、ProductsMapper
public interface ProductsMapper { // 按产品名称分页查询产品信息,查询所有产品列表 List<Map<String,Object>> showData(Products products); //添加产品信息 @Insert("INSERT INTO exam.products (productName, productDate, productSum, productDesc, productPrice) VALUES " + "(#{productName}, now(), #{productSum}, #{productDesc}, #{productPrice});") Integer add(Products products); }5.2、QualitiesMapper
public interface QualitiesMapper { //质检操作 @Update("UPDATE exam.qualities SET score=#{score}, qualityDesc = #{qualityDesc} WHERE id = #{id};") Integer edit(Qualities qualities); }6、service
6.1、ProductsService
public interface ProductsService { // 按产品名称分页查询产品信息,查询所有产品列表 List<Map<String,Object>> showData(Products products); //添加产品信息 Integer add(Products products); //分页查询产品信息 PageInfo<Map<String,Object>> showPage(Integer pageno,Products products); }6.2、QualitiesService
public interface QualitiesService { //质检操作 @Update("UPDATE exam.qualities SET score=#{score}, qualityDesc = #{qualityDesc} WHERE id = #{id};") Integer edit(Qualities qualities); }6.3、ProductsServiceImpl
@Service @Transactional public class ProductsServiceImpl implements ProductsService { @Autowired private ProductsMapper productsMapper; @Override public List<Map<String, Object>> showData(Products products) { return productsMapper.showData(products); } @Override public Integer add(Products products) { return productsMapper.add(products); } @Override public PageInfo<Map<String, Object>> showPage(Integer pageno,Products products) { PageHelper.startPage(pageno,3); List<Map<String,Object>> list=productsMapper.showData(products); return new PageInfo<Map<String,Object>>(list); } }6.4、QualitiesServiceImpl
@Service public class QualitiesServiceImpl implements QualitiesService { @Autowired private QualitiesMapper qualitiesMapper; @Override public Integer edit(Qualities qualities) { return qualitiesMapper.edit(qualities); } }7、resource》mapper
7.1、ProductsMapper.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.kgc.mapper.ProductsMapper"> <select id="showData" parameterType="Products" resultType="map"> SELECT q.score,p.* FROM products p,qualities q WHERE p.id=q.productId <if test="productName!=null"> AND p.productName=#{productName} </if> ORDER BY p.productDate DESC </select> </mapper>application.properties7.2、application.properties
server.port=8762(3) spring.application.name=provider eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/exam spring.datasource.username=root spring.datasource.password=123. mybatis.type-aliases-package=cn.kgc.vo mybatis.mapper-locations=classpath:mapper/*.xml pagehelper.helper-dialect=mysql8、eureka-consumer
8.1、CenterController
@RestController public class CenterController { @Autowired private ProQulFeign proQulFeign; //质检操作 @RequestMapping("/edit.do") public String edit(@RequestBody Qualities qualities) { return proQulFeign.edit(qualities); } //查询所有产品列表 @RequestMapping("/data.do") public String showData(@RequestBody Products products) { return proQulFeign.showData(products); } //添加产品信息 @RequestMapping("/add.do") public String add(@RequestBody Products products) { return proQulFeign.add(products); } //按产品名称分页查询产品信息 @RequestMapping("/page.do") public String showPage(@RequestParam("pageno") Integer pageno,@RequestBody Products products) { return proQulFeign.showPage(pageno,products); } }8.2、ProQulFeign
@FeignClient(name = "provider",fallback = ProQulFeignFallBack.class) public interface ProQulFeign { //质检操作 @RequestMapping("/edit.do") public String edit(@RequestBody Qualities qualities) ; //查询所有产品列表 @RequestMapping("/data.do") public String showData(@RequestBody Products products) ; //添加产品信息 @RequestMapping("/add.do") public String add(@RequestBody Products products) ; //按产品名称分页查询产品信息 @RequestMapping("/page.do") public String showPage(@RequestParam("pageno") Integer pageno,@RequestBody Products products) ; }8.3、ProQulFeignFallBack
@Component public class ProQulFeignFallBack implements ProQulFeign { @Override public String edit(Qualities qualities) { return "质检操作失败"; } @Override public String showData(Products products) { return "查询所有产品列表失败"; } @Override public String add(Products products) { return "添加产品信息失败"; } @Override public String showPage(Integer pageno, Products products) { return "按产品名称分页查询产品信息失败"; } }8.4、application.properties
server.port=8764 spring.application.name=consumer eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ pagehelper.helper-dialect=mysql feign.hystrix.enabled=true provider.ribbon.NFloadBalancerRuleClassName=com.netflix.loadbalancer.RandomRuleprovider和consumer的pom.xml
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>cn.kgc</groupId> <artifactId>common-product</artifactId> <version>1.0-SNAPSHOT</version> </dependency>9.eureka-zuul
application.properties
server.port=8765 spring.application.name=zuul eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/ zuul.routes.provider=/pro/**/ zuul.routes.consumer=/con/**/数据库
CREATE TABLE products( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY , productName VARCHAR(10) NOT NULL , productDate VARCHAR(19) NOT NULL , productSum INT(4) NOT NULL DEFAULT 0 , productDesc VARCHAR(20), productPrice DOUBLE(5,2) NOT NULL DEFAULT 0 ); DROP TABLE qualities; CREATE TABLE qualities( id INT(4) NOT NULL AUTO_INCREMENT PRIMARY KEY , score VARCHAR(3) NOT NULL , qualityDesc VARCHAR(10), productId INT(4) NOT NULL ); ALTER TABLE qualities ADD CONSTRAINT fk_qualities_products_productId FOREIGN KEY (productId) REFERENCES products(id);