逆向工程搭建

逆向工程搭建

在人人开源里面下载:

image-20230426161655656

1
2
3
4
5
6
7
8
9
10
11
12
13
14
git clone https://gitee.com/renrenio/renren-generator.git

下载到桌面后,同样把里面的.git文件删除,然后移动到我们IDEA项目目录中,同样配置好pom.xml(root)

<modules>
<module>gulimall-coupon</module>
<module>gulimall-member</module>
<module>gulimall-order</module>
<module>gulimall-product</module>
<module>gulimall-ware</module>
<module>renren-fast</module>
<module>renren-generator</module>
</modules>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
修改renren-generator的application.yml
url: jdbc:mysql://192.168.106.100:3306/gulimall-pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: Zlw199805

修改generator.properties
mainPath=com.zlw # 主目录
package=com.zlw.gulimall # 包名
moduleName=product # 模块名
author=zlw # 作者
email=1253143088@qq.com # email
tablePrefix=pms_ # 我们的pms数据库中的表的前缀都有pms,
如果写了表前缀,每一张表对于的javaBean就不会添加前缀了

1
2
3
4
5
运行RenrenApplication,访问http://localhost:80

然后点击全部,点击生成代码。下载了压缩包

解压压缩包,把main放到gulimall-product的同级目录下。

image-20230426164444611

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
然后在项目上右击(在项目上右击很重要)new modules— maven—然后在name上输入gulimall-common。

在pom.xml中也自动添加了<module>gulimall-common</module>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>gulimall</artifactId>
<groupId>com.zlw.gulimall</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>gulimall-common</artifactId>
<description>每个微服务公共得依赖,bean,工具类等</description>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<!-- mybatisPLUS-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>LATEST</version>
</dependency>
<!--简化实体类,用@Data代替getset方法-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
<!-- httpcomponent包https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.13</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
</dependencies>

</project>
1
2
3
4
5
6
7
然后在product项目中的pom.xml中加入下面内容
<dependency>
<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall-common</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
复制

renren-fast----utils包下的Query和PageUtils、R、Constant复制到common项目的java/com.yxj.common.utils下

把@RequiresPermissions这些注解掉,因为是shiro的

复制renren-fast中的xss包粘贴到common的java/com.yxj.common目录下。

还复制了exception文件夹,对应的位置关系自己观察一下就行

注释掉product项目下类中的//import org.apache.shiro.authz.annotation.RequiresPermissions;,他是shiro的东西

注释renren-generator\src\main\resources\template/Controller中所有的
# @RequiresPermissions。
# import org.apache.shiro.authz.annotation.RequiresPermissions;

总之什么报错就去renren-fast里面找。

测试

测试之前先整合一下商品服务里面得mybatis-plus

整合mybatis-plus:

(1)导入依赖:

1
2
3
4
5
6
<!-- mybatisPLUS-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>LATEST</version>
</dependency>

(2)配置

  • 配置数据源

    • 导入数据库的驱动

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.33</version>
      </dependency>
      <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.5</version>
      <scope>provided</scope>
      </dependency>
    • 在application.yml配置数据源相关信息

      1
      2
      3
      4
      5
      6
      7
      spring:
      datasource:
      username: root
      password: Zlw199805
      url: jdbc:mysql://192.168.106.100:3306/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
      driver-class-name: com.mysql.cj.jdbc.Driver

  • 配置mybatis-plus

    • 使用@MapperScan

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11

      @MapperScan("com.zlw.gulimall.product.dao")
      @SpringBootApplication
      public class GulimallProductApplication {

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

      }

    • 告诉MyBatis-Plus,sql映射文件位置

      1
      2
      3
      4
      5
      mybatis-plus:
      mapper-locations: classpath:/mapper/**/*.xml
      global-config:
      db-config:
      id-type: auto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
测试

先通过下面方法给数据库添加内容
@SpringBootTest(classes = GulimallProductApplication.class)
@RunWith(SpringRunner.class)
public class GulimallProductApplicationTests {
@Autowired
BrandService brandService;
@Test
public void contextLoads() {
BrandEntity brandEntity = new BrandEntity();
brandEntity.setDescript("hello");
brandEntity.setName("华为");
brandService.save(brandEntity);
System.out.println("保存成功");
}

}



这里要修改一下SpringCloud的版本,要不会发生错误,这个地方困扰了好久!

将所有模块的逆向工程补全

(1)首先修改代码生成器(也就是renren-generator):application.yml中数据库的名字

(2)修改generator.propertise中:模块名(moudleName)和表前缀(tablePrefix)

(3)执行renren-generator程序,生成main代码,替换对应微服务中的main。

(4)依赖common。配置application.yml,配置端口。

(5)运行测试


逆向工程搭建
http://example.com/2023/04/26/逆向工程搭建/
作者
zlw
发布于
2023年4月26日
许可协议