商城笔记 1-- 运行环境搭建

本贴最后更新于 574 天前,其中的信息可能已经时移俗易

环境搭建

虚拟机

使用 virturebox 安装三个 centos 虚拟机

虚拟机网络配置

为了防止虚拟机网络随着我们主机网络的变化而变化,对虚拟机的网络做如下配置

网卡

给虚拟机建立两个网卡(网卡选定即可,使用默认配置,无需修改)

image.png

image.png

在工具中查看网卡地址信息,没有的话自己配置一个,记录这里的网关和子网掩码

image.png

虚拟机中配置网络

vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

打开后在最后新增配置

IPADDR=192.168.56.5
NETMASK=255.255.255.0
GATEWAY=192.168.56.1
DNS1=114.114.114.114
PREFIX=24

修改配置项信息

BOOTPROTO=static
DEFROUTE=no
ONBOOT=yes

docker 安装

1、卸载 docker

sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

2、yum-utils 安装

sudo yum install -y yum-utils

3、yum 源设置

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

4、安装 docker

sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

5、配置阿里镜像源

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://h0fcunc7.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

docker 安装 mysql

拉取镜像

docker pull mysql:5.7

运行容器

docker run -p 3306:3306 --name mysql \
-v /opt/mydata/mysql/log:/var/log/mysql \
-v /opt/mydata/mysql/data:/var/lib/mysql \
-v /opt/mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

修改配置

建立配置文件

cd /opt/mydata/mysql/conf/
vi my.cnf

配置信息如下

[client]
default-character-set=utf8

[default]default-character-set=utf8

[mysqld]
init_connect="SET collation_connection = utf8_unicode_ci"
init_connect="SET NAMES utf8"
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

docker 安装 redis

拉取镜像

docker pull redis

运行容器

建立配置文件

mkdir -p /opt/mydata/redis/conf \
vi /opt/mydata/redis/conf/redis.conf

再 redis.conf 中填写配置信息

bind 0.0.0.0
appendonly yes
requirepass redis123

运行容器

docker run -p 6379:6379 --name redis \
-v /opt/mydata/redis/data:/data \
-v /opt/mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf

mavne 镜像仓库配置

再 setting.conf 的配置文件 mirrors 节点下添加

<mirror>
	<id>nexus-aliyun</id>
	<mirrorOf>central</mirrorOf>
	<name>nexus maven</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>

在 setting.conf 的配置文件 profiles 节点下添加,这里我本机 jdk 是 1.8,版本根据自己 jdk 版本调整

<profile>
	<id>jdk-1.8</id>
	<activation>
		<activeByDefault>true</activeByDefault>
		<jdk>1.8</jdk>
	</activation>
	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
	</properties>
</profile>

新建 git 仓库,并建立项目

项目结构如下,spring boot 版本根据自己需要选择

image.png

每个项目 pom 中引入

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

数据库初始化

执行 git 项目的 docs 目录下的几个 SQL 文件,先执行 init.sql,其他文件顺序任意 SQL 文件地址点这里

使用人人框架作为后台管理

下载前后端三个 git 项目

https://gitee.com/renrenio/renren-fast.git 后台管理服务

https://gitee.com/renrenio/renren-fast-vue.git 后台页面

https://gitee.com/renrenio/renren-generator.git 代码生成器

下载成功后删除两个目录下的隐藏 git 文件,将 renren-fast 复制到 mall 目录下,作为一个模块添加到 mall 项目,修改 application.yml 中的数据库配置,在前面的数据库初始化环节,我将 renren-fast 的数据库名修改为 mall_admin,所以这里要对应修改

image.png

运行前后台

启动 renren-fast 后台

在 renren-false-vue 中执行 npm install,npm run dev 启动即可

前端启动问题汇总:

1、node 版本

node 版本尝试了 12、14、16、18,推荐使用 node14 版本,其他版本使用过程中会遇到各种各样的问题

2、权限问题

给 nodejs 安装目录完全控制权限,否则会出现 windows 系统安装过程中

3、python 编码问题

python 安装的是 2.7 版本,npm install 过程中遇到 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 7: ordinal not in range(128) 类似的问题,参考这篇文章处理【python】pip 安装报错 UnicodeDecodeError: 'ascii' codec can't decode byte 0xc4 in position 7: ordinal not in range(128) - 放飞的回忆 - 博客园 (cnblogs.com)

前后端启动后就可以正常使用系统了

代码生成器

修改 renren-generator 中的数据库配置信息,要生成哪个库里表得代码就改成哪个

image.png

修改 generator.properties 配置,mainPath 何 package 就是 src 下得路径,我的包路径是 com.mall.coupon,所以将 mainPath,package 设置为 com.mall.coupon,moduleName 设置为 coupon,生成的类就会在 com.mall.coupon 路径下,tablePrefix 用于去除表前缀,我的数据库表名称为 sms_product,配置了 tablePrefix 属性后,生成的类名中就不会包含 sms_这个前缀

image.png

代码生成器中使用的是 shiro,如果要替换成 spring security 或其他,需要改模板中的配置

修改 renren-generator 工程中,template 目录下得 controller.java.vm 文件

将涉及 RequirePermissions 得地方都进行注释

common 模块处理

renren-fast 是一个单服务框架,我们生成的代码里引用了很多他自己封装的防范,放在我们自己的代码中,由于和 renren-fast 不是一个服务下,所以需要建立 common 模块,将公用的服务依赖放在 common 模块中,新词在根目录下建立一个 common 模块

image.png

建立好后,去看之前生成的代码,那些类没有引用的,就从 renren-fast 中引入到 common 服务

common 处理好后,在其他工程中引入这个 common 依赖,然后复制生成的代码到对应的工程即可

项目配置 yml 文件

配置数据库连接信息,配置 mybatis-plus 信息

server:
  port: 9004
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.8.5:3306/mall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    driverClassName: com.mysql.cj.jdbc.Driver

mybatis-plus:
  mapperLocation: classpath*:/mapper/**/*.xml
  globalConfig:
    dbConfig:
      idType: auto

application 启动类配置

启动类添加 mapperScan 扫描 mybatis 接口

@MapperScan("com.mall.product.dao")
  • 笔记

    好记性不如烂笔头。

    308 引用 • 793 回帖 • 1 关注
1 操作
wenyl 在 2023-04-27 15:04:34 更新了该帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...