2019-7-26 分布式微服务开发商城(一)

一、商城介绍:

     1、分类:

       

B2B

公司对公司性质的销售方式

批发

B2C

公司对个质的销售方式

能把控质量,树立良好品牌形象

C2C

个人对个人的销售方式

发展比较快

B2C2C

既支持自营,也支持入住

主力模式(B2C+C2C)

      2、组成模块:

       

商品中心

 

主要针对商品关联的品牌、商品目录等基础信息,及商品资料(含基础资料、媒体资料、价格信息、库存资料及SEO资料)。同时对外提供有关商品管理及查询的所有服务。

用户中心

注册,登录,会员中心,交易中心,资金中心

在线商城

商城首页,列表页,详细页,购物车,订单确认,促销与搜索

平台管理

基础模块,权限,会员,店铺,交易,财务,营销推广/促销,信息内容

支付中心

三方支付集成,账户充值,订单支付,订单退款,支付流水

   3、开发模式:

          ①、瀑布式开发:每一个流程都事先最完美的去准备,当我们开发一段时间后,可能需求发生了很大的变大,给我们开发带来了很大的麻烦。

          ②、迭代开发1(1-3需求):(敏捷)--开发人员:
                 事先把一个项目分成很多版本:迭代会议
                 需求收集--需求分析--需求设计--项目设计--开发--测试--上线

    4、前后端分离:

         前端:给用户使用。

         后台:管理员使用

         2019-7-26 分布式微服务开发商城(一)_第1张图片

二、项目环境搭建:

     ①、原始结构:

          2019-7-26 分布式微服务开发商城(一)_第2张图片

    ②、测试平台服务

    @RequestMapping("/user")
    @RestController
    public class UserController {

        @Autowired
        private IUserService userService;
    
        @RequestMapping(value = "/login",method = RequestMethod.POST)
        public AjaxResult login(@RequestBody User user){

            System.out.println("用户名:"+user.getName()+"   密码:"+user.getPassword());
            if     (!StringUtils.isEmpty(user.getName())&&!StringUtils.isEmpty(user.getPassword())){
                if ("wutao".equals(user.getName()) && "123456".equals(user.getPassword())){

                    User all = userService.findAll();
                    return AjaxResult.me().setSuccess(true).setMsg("登录成功").setData(all);
                }else {
                    return AjaxResult.me().setSuccess(false).setMsg("用户名或密码错误");
                }
            }
            return AjaxResult.me().setSuccess(false).setMsg("用户名或密码不能为空");

        }
    }

    ③、使用Postman测试工具:

       2019-7-26 分布式微服务开发商城(一)_第3张图片三、swagger接口规范:

1、单服务集成

①、具体服务导入依赖:

        
        
            io.springfox
            springfox-swagger2
            2.9.2
        
        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        

 ②、本服务中导入工具API

    @Configuration
    @EnableSwagger2
    public class Swagger2 {
 
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo())
                    .select()
                    .apis(RequestHandlerSelectors.basePackage("cn.wutao.aigou.controller"))
                    //包:就是自己接口的包路径
                    .paths(PathSelectors.any())
                    .build();
        }
    

        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("商品系统api")//名字
                    .description("商品系统接口文档说明")//额外藐视
                    .contact(new Contact("wutao", "", "[email protected]"))
                    .version("1.0")// 版本
                    .build();
        }

    }

2、与网关集成:

①、导入依赖:

        
        
            io.springfox
            springfox-swagger2
            2.9.2
        
        
        
            io.springfox
            springfox-swagger-ui
            2.9.2
        

 ②、配置API类

    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {

        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .apiInfo(apiInfo());
        }

        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("分布式购物系统")
                    .description("购物系统接口文档说明")
                    .termsOfServiceUrl("http://localhost:9527")
                    .contact(new Contact("wutao", "", "[email protected]"))
                    .version("1.0")
                    .build();
        }

    }
    @Component
    @Primary
    public class DocumentationConfig implements SwaggerResourcesProvider {
        @Override
        public List get() {
            List resources = new ArrayList<>();
           //aigou网关前缀,employee网关路径   ;swagger的路径 ,以后增加了接口就在这配置就ok
            resources.add(swaggerResource("用户系统", "/aigou/employee/v2/api-docs", "2.0"));
            resources.add(swaggerResource("商品系统", "/aigou/product/v2/api-docs", "2.0"));
            resources.add(swaggerResource("基础系统", "/aigou/common/v2/api-docs", "2.0"));
            resources.add(swaggerResource("平台管理", "/aigou/user/v2/api-docs", "2.0"));
            return resources;
        }

        private SwaggerResource swaggerResource(String name, String location, String     version) {
            SwaggerResource swaggerResource = new SwaggerResource();
            swaggerResource.setName(name);
            swaggerResource.setLocation(location);
            swaggerResource.setSwaggerVersion(version);
            return swaggerResource;
        }
    }

       ③、测试:

       http://127.0.0.1:9527/swagger-ui.html

2019-7-26 分布式微服务开发商城(一)_第4张图片

 

你可能感兴趣的:(项目跟踪)