当前位置:   article > 正文

社会统一信用代码生成器_谷粒商城|基础篇(一) 项目搭建与代码生成

统一社会信用代码生成器

源码地址:https://gitee.com/baohaipeng/gulimall


本文目标

  1. 搭建项目框架
  2. 数据库初始化
  3. 代码生成器改造
  4. 构建所有模块代码

项目框架搭建

  • 在码云上创建Git仓库,顺序及注意点参照下图标注
b422c999e82fd718a820ed7e82da6068.png
  • 本地克隆码云的远程仓库。先复制仓库地址,到本地打开git命令行,执行拉取
3bd36ae1f3bb717baf317ba6da4b1c6c.png
03e0945cf19f3ce258ed87eb5d407ade.png
79547078159653e8670bd9c94c9a34f0.png
  • 创建商品服务模块。用idea打开拉取的项目,创建谷粒商城商品服务模块,选择基本依赖后Finish
a4adc883ff35f7f75d4c6d37a43323fd.png
928b83e7bf1fd4b4f299dba27efe7229.png
1a40f98ba336e195e8cddeb51393dc97.png
857fdef4ac2dfcf3660ab931d76f1405.png
  • 根据上一步的操作,再依次创建仓储微服务(ware)、订单微服务(order)、优惠券微服务(coupon)、用户微服务(member),完整结构如下
b966dd279aaa11efdfd5d94b081cea4a.png
  • 用pom文件聚合各个微服务

在gulimall根目录下新建pom文件,打包方式为pom,并将各个微服务聚合起来,结构如下

5f1ba8e331b89a55ebfabe3d1ca1ee45.png

如果你的idea右侧没有出现Maven窗口,右键点击gulimall工程,点击Add Framework Support,选择Maven,确认即可展示。

完整pom文件如下

<?xml version="1.0" encoding="UTF-8"?>4.0.0com.bhp.gulimall    gulimall    0.0.1-SNAPSHOTgulimall聚合服务pomgulimall-coupongulimall-productgulimall-ordergulimall-membergulimall-ware
  • 编辑聚合服务的忽略配置.gitignore,删除子模块的.gitignore
b74dabdbaeb885b3a26d1c796ad4aff9.png

聚合服务完整.gitignore

target/pom.xml.tagpom.xml.releaseBackuppom.xml.versionsBackuppom.xml.nextrelease.propertiesdependency-reduced-pom.xmlbuildNumber.properties.mvn/timing.properties.mvn/wrapper/maven-wrapper.jar**/mvnw**/mvnw.cmd**/.mvn**/*.iml**/target/.idea

子模块的忽略配置直接删掉即可

b82d03da6562207a22f0cf6bcdb9d123.png

子模块微服务的HELP.md文件根据自己的需要选择删除还是保存,我直接删了。

  • 向码云提交代码

点击右上角提交按钮,可以从左侧看到现在所有的不需要的东西已经排除掉了,选中所有代码,填写提交备注,点击下方的提交并推送按钮

b26158cc2c2c7557145c294e285450df.png

确认无误后点击push进行推送

3cc63534eec479378adc39ff647ec453.png

如图,推送基本代码结构成功

5c6f67cc72507dc62fbd97841dbc7a84.png

初始化数据库

在mysql分别新建下边的数据库,字符集和排序规则如下图设置

2ad6aaa1707c6910d7508f4c45686038.png
  • gulimall_oms(订单管理数据库)
  • gulimall_pms(商品管理数据库)
  • gulimall_sms(优惠/营销管理数据库)
  • gulimall_ums(会员管理数据库)
  • gulimall_wms(库存管理数据库)

sql文件已经放到项目根目录下的sql文件夹内

d1bc8f459cacef5c2691bcb81accaea2.png

引入人人开源后台管理系统

  • 将renren-fast克隆到本地:https://gitee.com/renrenio/renren-fast.git

将renren-fast-vue克隆到本地:https://gitee.com/renrenio/renren-fast-vue.git

d9794f8b111e0556d8f33d31ad4620eb.png
  • 删除renren-fast原有git链接文件夹,将其整个拷进gulimall,并在聚合工程内引入
872bc2f69e21b92b753e5e22fe2d797e.png
20dd7a7b225051dffe283351bcf0b2ec.png

聚合服务pom文件内右键、Maven、Reload Project重新导入依赖

447eecdc3d321a79f18b891894be4f3d.png
  • 新建gulimall_admin(后台管理数据库),并执行renren-fast的db目录下的mysql.sql文件,初始化后台管理数据库
7922a5b6eba9591d588907d1d66ebfc4.png
6f0177ae05b35554569fa84879376066.png
  • 修改数据库连接地址、账号、密码
543d81d0d9ea98c1eed72aebeba4309c.png

启动RenrenAplication,成功后如下界面

3e7063e31fd40c72fbfbcec9904013da.png
  • 将前端项目renren-fast-vue拷进gulimall项目中,依次执行以下命令,然后即可看到下图的登录页面

npm install

npm run dev

aca28808372942231bf6869dc3308e71.png

账号:admin,密码admin,输入验证码,登录正常

8de3cef0f3f2019140e744a04133d723.png

将renren-fast和renren-fast-vue的代码同步提交到自己的码云仓库,完善项目目录

17440fcee9b56ab152c2612c1602b931.png

引入人人开源代码生成器

  • 将renren-generator克隆到本地:https://gitee.com/renrenio/renren-generator.git
  • 删除renren-generator原有git链接文件夹,将其整个拷进gulimall,并在聚合工程内引入
e25409235ce4d61b2f4c89981bbb6531.png
  • 修改数据库配置,让数据库连接上gulimall_pms(商品管理数据库)
4f430609844f70e31a4b8c76bbc510a8.png
  • 修改代码生成器设置,使其符合商品管理微服务的实际结构要求
7c8710a68551ff88cbc82e43eb6329fa.png
  • 启动代码生成器,可以看到所有的商品管理数据内的表
cf591f04cb17a9e39b58d57151490aa6.png
53142d6b539988330f5632821ed4720e.png
  • 选中所有表,生成代码
05c3bbd45b46717c2c2612087a3ace95.png
  • 将生成的代码中的controller、dao、entity、 service、mapper文件夹都拷进项目中
6ccbfe057ceabe265dfba2aba0d896d7.png

随便打开一个文件,发现一堆报错,很多错误是由于缺少部分依赖造成的,下边会进行统一处理

c003df0c9d809708e112d8f095ebd147.png

增加公共模块gulimall-common

  • 右键点击项目根目录gulimall,new,module,maven,next,填写必要信息,finish
019029d1f56794503e8ba7fd1bd29085.png
8c173da722f557048ea0b11cc3654f7c.png
  • 添加mybatis-plus依赖
        com.baomidou            mybatis-plus-boot-starter            3.3.2
  • 添加lombok依赖
        org.projectlombok            lombok            1.18.16
  • 添加httpcore依赖
        org.apache.httpcomponents            httpcore            4.4.13
  • 添加commons-lang依赖
 commons-lang            commons-lang            2.6
  • 添加mysql驱动依赖
        mysql            mysql-connector-java            8.0.22
  • 在gulimall-common的main/java目录下新建文件夹com.bhp.common.utils,将renren-fast里的PageUtils.java、Query.java、R.java、Constant.java和RRException.java复制进去
d8b4bc0b09cf9365c3e527f1d61bda24.png
  • 在gulimall-common的main/java目录下新建文件夹com.bhp.common.xss,将renren-fast里的SQLFilter.java复制进去,并修改SQLFilter.java内导入的RRException包路径
9f6ef9ff5a8a06c602ee5901d5fa0b32.png
  • 完整pom文件
<?xml version="1.0" encoding="UTF-8"?>        gulimall        com.bhp.gulimall0.0.1-SNAPSHOT4.0.0    gulimall-common    谷粒商城公共模块org.apache.maven.plugins                maven-compiler-plugin                77mysql            mysql-connector-java            8.0.22com.baomidou            mybatis-plus-boot-starter            3.3.2org.projectlombok            lombok            1.18.16org.apache.httpcomponents            httpcore            4.4.13commons-lang            commons-lang            2.6io.renren            renren-fast            3.0.0compile
  • 商品微服务引入gulimall-common依赖
ddc34c1680483f4d4867c2a442df5629.png

此时,商品服务模块生成的代码依然会报错,由于需要修改的地方比较多,下面调整代码生成器模板,对代码进行重新生成并替换。

调整代码生成器模板

  • 打开renren-generator内的Controller.java.vm文件,删除下边这个引入
39f61917420d67c181d27d042ee6869d.png
  • 注释所有@RequiresPermissions的注解
adbbd5532966c6273f7c845e2872afec.png
  • 最终的Controller.java.vm文件
package ${package}.${moduleName}.controller;import java.util.Arrays;import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;import ${package}.${moduleName}.entity.${className}Entity;import ${package}.${moduleName}.service.${className}Service;import ${mainPath}.common.utils.PageUtils;import ${mainPath}.common.utils.R;/** * ${comments} * * @author ${author} * @email ${email} * @date ${datetime} */@RestController@RequestMapping("${moduleName}/${pathName}")public class ${className}Controller {    @Autowired    private ${className}Service ${classname}Service;    /**     * 列表     */    @RequestMapping("/list")##    @RequiresPermissions("${moduleName}:${pathName}:list")    public R list(@RequestParam Map params){        PageUtils page = ${classname}Service.queryPage(params);        return R.ok().put("page", page);    }    /**     * 信息     */    @RequestMapping("/info/{${pk.attrname}}")##    @RequiresPermissions("${moduleName}:${pathName}:info")    public R info(@PathVariable("${pk.attrname}") ${pk.attrType} ${pk.attrname}){${className}Entity ${classname} = ${classname}Service.getById(${pk.attrname});        return R.ok().put("${classname}", ${classname});    }    /**     * 保存     */    @RequestMapping("/save")##    @RequiresPermissions("${moduleName}:${pathName}:save")    public R save(@RequestBody ${className}Entity ${classname}){${classname}Service.save(${classname});        return R.ok();    }    /**     * 修改     */    @RequestMapping("/update")##    @RequiresPermissions("${moduleName}:${pathName}:update")    public R update(@RequestBody ${className}Entity ${classname}){${classname}Service.updateById(${classname});        return R.ok();    }    /**     * 删除     */    @RequestMapping("/delete")##    @RequiresPermissions("${moduleName}:${pathName}:delete")    public R delete(@RequestBody ${pk.attrType}[] ${pk.attrname}s){${classname}Service.removeByIds(Arrays.asList(${pk.attrname}s));        return R.ok();    }}
  • 重启代码生成器,重新生成gulimall_product数据库代码,使用新生成的controller文件夹覆盖原来有问题的文件夹,现在商品微服务模块的代码就都不会报错了
33702017c99031f15561c23eca1d296b.png
  • 将修改后的代码都提交码云进行更新

完善商品微服务模块gulimall_product的功能

目前,商品微服务模块的业务代码都自动生成并且没有异常了,下面需要完善配置,让该模块正常联通数据库。

  • 配置商品微服务模块的数据库连接信息
62553e0cf1e34c39da1d8fd7533e8714.png
spring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    username: root    password: root    url: jdbc:mysql://127.0.0.1:3306/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
  • 配置dao层扫描路径
a1a8770c5388dfb0df056717abf86337.png
@MapperScan("com.bhp.gulimall.product.dao")
  • 配置Mybatis-Plus
c15fa131b633b6703c4522244e7fdf93.png
mybatis-plus:  mapper-locations: classpath:/mapper/**/*.xml  global-config:    db-config:      id-type: auto
  • 测试一下商品微服务模块能不能正常工作
03a80830515629ef540ccc7ea59fd398.png
package com.bhp.gulimall.product;import com.bhp.gulimall.product.entity.BrandEntity;import com.bhp.gulimall.product.service.BrandService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;@SpringBootTestclass GulimallProductApplicationTests {@AutowiredBrandService brandService;@Testvoid contextLoads() {BrandEntity brandEntity = new BrandEntity();brandEntity.setName("汉阳造");brandEntity.setDescript("耗子尾汁");brandService.save(brandEntity);System.out.println(brandEntity.toString());}}

控制台打印成功,数据也入库成功,商品微服务模块搭建完成

6261c086941d0cdaf547bd9f6862c761.png

优惠券服务代码生成与配置

  • 修改代码生成器连接的数据库为gulimall_sms(优惠/营销管理数据库)
605105483521a571afde3014b7ec00af.png
  • 修改代码生成器的业务配置
805533b3d991de0bd501448cc947d75b.png
  • 重启代码生成器,生成代码并下载
613cb4d1dfc49a7cee782626eb8150c6.png
  • 将生成的controller、dao、entity、service、mapper文件夹整个复制到gulimall-coupon项目中
c8d66d44ccea48c3182262972e80e504.png
  • 依赖gulimall-common模块
2e6895fbc5e0b06d00c9ead50fc707a1.png
  • 配置数据库连接信息、设置Mybatis-Plus
aea08a7c9c588e62762a7c81c864d5e1.png
  • 启动类配置dao层扫描
5594bdb8e9268dee5baad039a21b75d7.png
  • 测试优惠券服务是否正常,控制台正常打印,数据正常入库
cea29005ee13bebcd1f8d183db24c919.png
2d1e1c9b89369b43902b4d4e629b4a86.png

至此,优惠券服务模块代码生成完毕

参照优惠券服务代码生成、配置及测试步骤,完成会员服务、订单服务、仓储服务模块的代码

过程略,代码已上传至我的远程仓库:https://gitee.com/baohaipeng/gulimall

423159bcfb87d112cae5edacc1e77a2e.png
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号