商城项目--4.开发环境配置(2)

开头老规矩,手动推荐一波了,欢迎大家关注我的公众号“风云编程录”,感谢大家🙏。

上一篇文章我们完成了开发环境的基本配置,本篇博客接着完成后续的一些配置。

1. 修改docker镜像为docker重启后,自动重启

修改docker中的mysql以及redis镜像为docker重启后,自动重启

docker update mysql --restart=always

docker update redis --restart=always

设置完成后,虚拟机重启后,mysql以及redis也会自动重启

2. 使用开源的脚手架框架完成后台管理功能的搭建

使用开源脚手架renren搭建前端以及后端项目

后台项目 renren-fast:

renren-fast: renren-fast是一个轻量级的Spring Boot2.1快速开发平台,其设计目标是开发迅速、学习简单、轻量级、易扩展;使用Spring Boot、Shiro、MyBatis、Redis、Bootstrap、Vue2.x等框架,包含:管理员列表、角色管理、菜单管理、定时任务、参数管理、代码生成器、日志管理、云存储、API模块(APP接口开发利器)、前后端分离等。

前台项目 renren-fast-vue:

renren-fast-vue: renren-fast-vue基于vue、element-ui构建开发,实现renren-fast后台管理前端功能,提供一套更优的前端解决方案。

(1)我们将renren-fast 以及 renren-fast-vue两个开源项目下载到本地

GodShadow@bogon code % git clone git@gitee.com:renrenio/renren-fast-vue.git

Cloning into 'renren-fast-vue'...

remote: Enumerating objects: 2208, done.

remote: Counting objects: 100% (2208/2208), done.

remote: Compressing objects: 100% (964/964), done.

remote: Total 2208 (delta 1138), reused 2189 (delta 1130), pack-reused 0

Receiving objects: 100% (2208/2208), 9.29 MiB | 348.00 KiB/s, done.

Resolving deltas: 100% (1138/1138), done.
GodShadow@bogon code % git clone git@gitee.com:renrenio/renren-fast.git

Cloning into 'renren-fast'...

The authenticity of host 'gitee.com (212.64.63.215)' can't be established.

ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.

Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

Warning: Permanently added 'gitee.com,212.64.63.215' (ECDSA) to the list of known hosts.

remote: Enumerating objects: 1898, done.

remote: Counting objects: 100% (17/17), done.

remote: Compressing objects: 100% (15/15), done.

remote: Total 1898 (delta 0), reused 5 (delta 0), pack-reused 1881

Receiving objects: 100% (1898/1898), 2.83 MiB | 1.17 MiB/s, done.

Resolving deltas: 100% (911/911), done.

(2)将renren-fast项目中的 .git文件删除,将renren-fast整个项目拷贝到我们的gulimall中

(3)将renren-fast加入到我们的项目中去

<modules>

<module>gulimall-product</module>

<module>gulimall-coupon</module>

<module>gulimall-member</module>

<module>gulimall-order</module>

<module>gulimall-ware</module>

<module>renren-fast</module>

</modules>

(4)为了配合renren-fast模块的运行,我们将renren-fast需要的sql脚本执行起来。

新增一个db数据库 gulimall_admin,然后将所有的sql执行一下

(5)修改renren-fast的配置文件

将application-dev.xml的配置文件中数据源的配置改成我们自己的

spring:

    datasource:

        type: com.alibaba.druid.pool.DruidDataSource

        druid:

            driver-class-name: com.mysql.cj.jdbc.Driver

            url: jdbc:mysql://192.168.56.100:3306/gulimall_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

            username: root

            password: root

然后我们就可以启动renren-fast项目了,这个属于一个管理系统的后台项目,我们可以通过localhost:8080/renren-fast 进行访问,访问界面如下:

 

3. 启动renren-fast-vue项目作为前端

(1)直接将renren-fast-vue项目拖到vscode中

(2)下面我们安装前段开发所需要的工具,首先是node

 

查看nodejs的版本

GodShadow@bogon ~ % node -v

v18.12.1

配置npm的镜像加速工具

​
GodShadow@bogon ~ % npm config set registry http://registry.npm.taobao.org/

然后在vscode中执行npm install下载前端需要依赖的包文件;

项目中的package.json文件记录了项目依赖的包文件;

下载完成后的依赖都会在node_modules中显示

我看了一下网上的资料,install的时候报了一堆错误,我也是按照视频中的要求换了一下node的版本,然后还是报了一堆错误,但是能启动了。

GodShadow@bogon _logs % node -v                                                

v10.16.3

GodShadow@bogon _logs % npm config set registry http://registry.npm.taobao.org/

renren-fast-vue 运行npm install之后出现了好多错误,反正我是一个也没解决的了。然后直接执行npm run dev

反正前端项目直接启动了,懵逼中

4. 前后端联调

后端项目

http://localhost:8080/renren-fast

前端项目

http://localhost:8001/

前端项目默认账号 admin admin

调试成功后如下:

 

5. 使用renren-generator代码生成器生成product模块代码 

添加renren-generator 脚手架,方便生成对应的mybatis相关的类 mapper以及对应sql

同样的操作,将 .git文件夹删掉,然后将整个renren-generator拷贝到我们的项目中去

同样的将这个模块添加进入我们的模块中

然后修改renren-generator 模块的配置

application.yml配置修改如下:

spring:

  datasource:

    type: com.alibaba.druid.pool.DruidDataSource

    #MySQL配置

    driverClassName: com.mysql.cj.jdbc.Driver

    url: jdbc:mysql://192.168.56.100:3306/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai

    username: root

    password: root

generator.properties 配置文件对应产品服务的修改如下:

mainPath=com.whq

package=com.whq.gulimall

moduleName=product

author=cloudwindback

email=giteeforwhq@163.com

tablePrefix=pms_

修改完成后,直接启动工程,可以看到代码生成器的访问页面是

localhost的80端口

 然后,我们全选所有的表格,生成对应代码

代码结构如下:

 然后将main文件夹替换我们项目中的产品模块中的main目录

其中resource目录如下:

 其中src下面是生成的前端vue代码,我们这边不需要,直接删除

6. 创建公共模块gulimall_common

我们看到生成的代码中有报错,为了解决这些报错,我们创建一个gulimall_common的模块,用于支持这些公共部分

(1)然后我们在product模块中添加我们的common模块

<dependency>

<groupId>com.whq.gulimall</groupId>

<artifactId>gulimall-common</artifactId>

<version>0.0.1-SNAPSHOT</version>

</dependency>

(2)在gulimall-common模块的pom文件中添加如下

<?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.whq.gulimall</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

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

    <dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.12</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>
    </dependencies>
</project>

(3)解决问题

将这两部分依赖倒入之后,可以解决很多问题了,然后我们将部分renren-fast项目中已经有的公共代码倒入到common模块中。

比如在service中存在如下的错误

import com.whq.common.utils.PageUtils;

import com.whq.common.utils.Query;

我们将renren-fast中的这些文件放到common模块中去

后面就是一个反复的修改代码的过程,需要调整脚手架生成的不适合的代码

其中一个比较重要的是,由于我们此次项目使用spring security作为权限管理,但是renren-fast使用的是shiro,我们需要修改一下脚手架工程生产的模版文件,将shiro的注解先去掉。


    @RequestMapping("/list")
    @RequiresPermissions("product:attrattrgrouprelation:list")
    public R list(@RequestParam Map<String, Object> params){
        PageUtils page = attrAttrgroupRelationService.queryPage(params);

        return R.ok().put("page", page);
    }

将renren-generator中的resource/template下的Controller.java.vm文件的@RequiresPermissions("${moduleName}:${pathName}:delete")这个注解注释掉

    @RequestMapping("/list")
    //@RequiresPermissions("${moduleName}:${pathName}:list")
    public R list(@RequestParam Map<String, Object> params){
        PageUtils page = ${classname}Service.queryPage(params);

        return R.ok().put("page", page);
    }

然后我们重启代码生成器项目,生成新的代码,然后将Controller的代码替换掉,这样的话,我们重新生成的代码中就不不包含这个注解了。

至此,我们的项目已经比较有模有样了,下一篇我们就开始基于生成的代码进行前后端联调。

最后还是老规矩,推荐一波:欢迎大家关注我的公众号“风云编程录”,感谢大家🙏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值