版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44190665/article/details/121043585
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_44190665/article/details/121043585
我是看这位博主的文章 记录一下自己的实践过程
1、人人开源逆向工程搭建
1、克隆renren-generator
2、删除其中的.git文件,复制到工程中,添加到父工程
3、父pom.xml中添加renren-generator
4、修改renren-generator的配置文件application.yml,配置自己的数据源
我是 先生成 gulimall-pms
5、修改生成器信息 generator.properties
如果出现中文乱码,按照图下设置:
6、修改src/main/resources/template/Controller.java.vm
删除导入shiro的语句
注释掉该位置,此处的注释是shiro提供的,我们以后要用spring security
7、运行项目,访问localhost:80,选中所有表,
点击 生成代码 按钮 会下载一个压缩包
然后
8、解压缩文件夹 把mian文件夹复制到gulimall-product/src下
\resources\src\views\modules\product (前端文件,用不到)
如果之前没有创建application.yml和启动类,手动创建
9、解决生成的代码报错
新建gulimall-common模块,用来引入每一个微服务公共的依赖、bean、工具类等
先在父工程的pom.xml进行版本控制
<!-- 统一管理jar包版本 -->
<properties>
<mybatis-plus.version>3.4.1</mybatis-plus.version>
<lombok.version>1.18.20</lombok.version>
<httpcore.version>4.4.14</httpcore.version>
<commons.lang.version>2.6</commons.lang.version>
</properties>
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${httpcore.version}</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>${commons.lang.version}</version>
</dependency>
</dependencies>
在gulimall-common引入公共依赖
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
</dependencies>
解决了dao、entity的报错。
接下来创建公共类解决service报错
在gulimall-common中按照要求创建包,引入PageUtils、Query、R、exception(在renren-fast里面复制)
复制xss下面的HTMLFilter、SQLFilter
一共就是这些 需要复制到common下
2. 测试基本的CRUD功能
1、在gulimall-common中导入mybatis-plus依赖 和其他可能需要的依赖
2、给gulimall-product 配置数据源
新建一个application.yml文件
server:
port: 10000
spring:
datasource:
#MySQL配置
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://192.168.127.129:3306/gulimall-pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: 123456
mybatis-plus:
configuration:
#数据库下划线和实体类驼峰统一
map-underscore-to-camel-case: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
global-config:
db-config:
id-type: auto
banner: false
#告诉mp,sql映射文件的位置,默认值classpath*:/mapper/**/*.xml。
# classpath表示只引用现在模块的类路径。lasspath*表示不止引用现在模块的类路径,还包括依赖jar包的类路径
mapper-locations: classpath:/mapper/*/*.xml
其中的 MySQL配置那块的url、username、password需要修改为自己的
3、测试
新建测试类
GulimallProductApplicationTests.java 注意:测试类所在的包名需要和主启动类包名一致
package io.zdd.gulimall.product;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.zdd.gulimall.product.entity.BrandEntity;
import io.zdd.gulimall.product.service.BrandService;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;
@SpringBootTest(classes = GulimallProductApplication.class)
@RunWith(SpringRunner.class)
public class GulimallProductApplicationTests {
@Autowired
private BrandService brandService;
@Test
public void testBrand(){
BrandEntity brandEntity = new BrandEntity();
brandEntity.setName("华为");
brandService.save(brandEntity);
System.out.println("保存成功");
List<BrandEntity> list = brandService.list(
new LambdaQueryWrapper<BrandEntity>().eq(BrandEntity::getName, "华为")
);
System.out.println(list);
System.out.println("aaaa");
}
}
然后运行这个测试类或者这个测试类下的这个方法,这条测试passed (虽然控制台可能会报一些警告或者错误),但是最终这条测试是passed, 可以暂且忽略这些信息
查看数据库,发现新增一条数据成功
同理自测删除、修改、查询。
测试查询所有Brand如下:
3、快速生成所有CRUD代码
1、先配置微服务端口
为了方便查看,模块名 = 端口 ====== 数据库:
gulimall-coupon (优惠券模块) = 7000 =====对应数据库(gulimall_sms)
gulimall-member (用户模块) = 8000 =====对应数据库(gulimall-ums)
gulimall-order (订单模块) = 9000 =====对应数据库(gulimall_oms)
gulimall-product (商品模块) = 10000 =====对应数据库(gulimall-pms)
gulimall-ware (仓储模块) = 11000 =====对应数据库(gulimall_wms)
如果没有主启动类 ,自己创建一个
2、修改生成器代码配置,要修改三个位置
renren-generator项目中的
1、application.yml 文件 url 地址 (数据库名)
2、generator.properties 文件 moduleName
3、generator.properties 文件 tablePrefix (表前缀,不是数据库前缀哦~,我因为之前导数据库的时候,有两个数据库名给弄错了 应该是_但是写成了-,所以如果有友友也是这个样子,需要注意下哦~)
生成coupon的代码,复制到工程中,并在gulimall-coupon工程中引入gulimall-common依赖
3、gulimall-coupon 优惠券
生成coupon的代码,复制到gulimall-coupon的main文件夹,
并在gulimall-coupon工程中引入gulimall-common依赖及其他的依赖,可直接粘贴product的pom.xml文件的所有依赖)
测试没问题(*^▽^*)!!:
成功往sms_coupon表中 添加一条Coupon数据
访问http://localhost:7000/coupon/coupon/list测试
测试成功!
4、gulimall-member 会员
修改renren-generator的两个文件 数据库的url为gulimall-ums
gulimall-member (用户模块) = 8000(端口) =====对应数据库(gulimall-ums)
然后运行 生成代码 替换掉gulimall-member的main文件夹
修改gulimall-member的pom.xml 依赖(复制coupon的pom.xml依赖粘贴过去)
添加一条Member会员信息到ums_member里面去
访问http://localhost:8000/member/member/list测试
测试成功!
5、gulimall-order 订单
修改 renren-generator 的两个文件 数据库的url为 gulimall_oms
gulimall-order (订单模块) = 9000 =====对应数据库(gulimall_oms)
然后运行 生成代码 替换掉gulimall-order 的main文件夹
修改gulimall-order的pom.xml 依赖(复制member的pom.xml依赖粘贴过去)
添加一条Order 订单数据到 oms_order 表里面去
测试成功!
6、gulimall-ware 仓储
修改 renren-generator 的两个文件 数据库的url为 gulimall_wms
gulimall-ware (仓储模块) = 11000 =====对应数据库(gulimall_wms)
然后运行 生成代码 替换掉gulimall-ware 的main文件夹
修改gulimall-ware的pom.xml 依赖(复制member的pom.xml依赖粘贴过去)
添加一条 WareInfo 仓储数据到 wms_ware_info 表里面去
测试成功!