栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

商品管理模块微服务demo

Java 更新时间:发布时间: 百科书网 趣学号

商品管理模块微服务demo

以 商品管理模块 做一个微服务架构通用案例,消费者Consumer(Client)通过REST调用 提供者 Provider(Server)提供的商品管理服务。

 一、创建父工程微服务microservice-cloud-01

1、pom.xml



    4.0.0

    com.mengxuegu.springcloud
    microservice-cloud-01
    1.0-SNAPSHOT
    
        ../microservice-cloud-02-api
        ../microservice-cloud-03-provider-product-8001
        ../microservice-cloud-04-consumer-product-80
    

    
    pom


    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.7.RELEASE
        
    

    
        UTF-8
        1.8
        1.8
        4.12
        
        Finchley.SR2
    


    
    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                
                import
            
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                1.3.2
            
            
            
                com.alibaba
                druid
                1.1.12
            
            
                mysql
                mysql-connector-java
                8.0.13
            
            
                junit
                junit
                ${junit.version}
                test
            
        
    

二、创建子工程微服务microservice-cloud-02-api

1、实体

package com.mengxuegu.springcloud.entities;

import java.io.Serializable;


public class Product implements Serializable {
    //主键
    private Long  pid;

    //产品名称
    private String  productName;

    // 来自哪个数据库,因为微服务架构可以一个服务对应一个数据库,同一个信息被存储到不同数据库
    private String  dbSource;

    public Product() {
    }

    public Product(String productName) {
        this.productName = productName;
    }

    public Product(Long pid, String productName, String dbSource) {
        this.pid = pid;
        this.productName = productName;
        this.dbSource = dbSource;
    }

    public Long getPid() {
        return pid;
    }

    public void setPid(Long pid) {
        this.pid = pid;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public String getDbSource() {
        return dbSource;
    }

    public void setDbSource(String dbSource) {
        this.dbSource = dbSource;
    }
}

2、pom.xml



    
        microservice-cloud-01
        com.mengxuegu.springcloud
        1.0-SNAPSHOT
        ../microservice-cloud-01/pom.xml
    
    4.0.0

    microservice-cloud-02-api


三、创建子微服务microservice-cloud-03-provider-product-8001 

1、controller

package com.mengxuegu.springcloud.controller;

import com.mengxuegu.springcloud.entities.Product;
import com.mengxuegu.springcloud.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;


@RestController
public class ProductController {

    @Autowired
    private ProductService productService;

    @RequestMapping(value = "/product/add", method = RequestMethod.POST)
    public boolean add(@RequestBody Product product) {
        return productService.add(product);
    }

    @RequestMapping(value = "/product/get/{id}", method = RequestMethod.GET)
    public Product get(@PathVariable("id") Long id) {
        return productService.get(id);
    }

    @RequestMapping(value = "/product/list", method = RequestMethod.GET)
    public List list() {
        return productService.list();
    }

}

2、service

package com.mengxuegu.springcloud.service;


import com.mengxuegu.springcloud.entities.Product;

import java.util.List;


public interface ProductService {

    boolean add(Product product);

    Product get(Long id);

    List list();

}

3、serviceImpl

package com.mengxuegu.springcloud.service.impl;

import com.mengxuegu.springcloud.entities.Product;
import com.mengxuegu.springcloud.mapper.ProductMapper;
import com.mengxuegu.springcloud.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


@Service //一定不要少了
public class ProductServiceImpl implements ProductService {

    @Autowired
    ProductMapper productMapper;

    @Override
    public boolean add(Product product) {
        return productMapper.addProduct(product);
    }

    @Override
    public Product get(Long id) {
        return productMapper.findById(id);
    }

    @Override
    public List list() {
        return productMapper.findAll();
    }

}

4、启动类

package com.mengxuegu.springcloud;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@MapperScan("com.mengxuegu.springcloud.mapper")
@SpringBootApplication
public class ProductProvider_8001 {

    public static void main(String[] args) {
        SpringApplication.run(ProductProvider_8001.class, args);
    }

}

5、mapper.xml






    
   select pid, product_name, db_source from product where pid=#{pid};