Recently, I have been following the video to do the e-commerce project "grain mall" in Shang Silicon Valley. This paper is the development record. Link to the original video tutorial:
There are two main purposes for publishing this article:
- For future reference.
- Give some reference to other students who do this project.
Note that the number of each section in the text is consistent with the part number of relevant content in the video tutorial, and sometimes the number jumps - normal.
001 introduction - Project IntroductionB2C e-commerce platform, micro service architecture and front and rear end separation.
004 introduction - Project micro service architecture 005 introduction - micro service division diagram 006 environment - quickly create Linux virtual machinesTwo tools are required, VirtualBox and Vagrant. VirtualBox is an open source virtual machine software, and Vagrant is a tool for creating and deploying a virtualized development environment.
After VirtualBox and Vagrant are installed, open the cmd window and execute the command: (initialize a centos/7 system)
vagrant init centos/7
Then execute the command: (start the virtual environment for the first time, and then start it in VirtualBox)
vagrant up
Connect virtual machine: (then you can directly operate the virtual machine in the cmd window)
vagrant ssh
Disconnect the virtual machine:
exit007 environment - virtual machine network settings
Execute ipconfig command in cmd window to view VirtualBox host only network:
The Ipv4 address is 192.168.56.1
Under the C: \ users \ XXX (your user name) path of the computer, find the file "Vagrantfile", edit the file and add the configuration:
Set the ip address of the virtual machine as 192.168.56.10
Restart the virtual machine for the configuration to take effect.
After restarting the virtual machine, you can ping the local Windows system and the virtual machine system to verify whether the ip address of the virtual machine is configured successfully.
008 environment - installing Docker in Linux EnvironmentDocker is a virtualization container technology.
Docker official installation tutorial
For the convenience of the next operation, first switch the current user to root: (so you don't need to add sudo before each command)
su root
password enter "vagrant" and pass the verification.
After installing Docker, execute the following command to start Docker:
systemctl start docker
View downloaded Docker images: (not yet)
docker images
View the running Docker container: (not yet)
docker ps
For convenience, set Docker to start automatically:
systemctl enable docker
To speed up image downloading, configure alicloud image acceleration:
Alibaba cloud official website
Alipay login - console - product and service - Container Service - container mirror Service - mirror tool - mirror accelerator -CentOS operation document
Follow the steps above in the operation document to configure the image accelerator.
010 environment - installing MySQL using DockerDownload MySQL 5.7 image file:
docker pull mysql:5.7
Configure port mapping and directory mount and start:
docker run -p 3306:3306 --name mysql \ -v /mydata/mysql/log:/var/log/mysql \ -v /mydata/mysql/data:/var/lib/mysql \ -v /mydata/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=root \ -d mysql:5.7
For convenience, set MySQL to start automatically:
docker update mysql --restart=always
Further configure MySQL:
vi /mydata/mysql/conf/my.cnf
[client] default-character-set=utf8 [mysql] 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
Restart MySQL to make the configuration effective:
docker restart mysql
Start MySQL:
docker start mysql
Stop running MySQL:
docker stop mysql
SQLyog is a tool for graphical management of MySQL.
Connect to MySQL database using SQLyog:
(ensure that MySQL has been started on the virtual machine, and the user name and password are root)
011 environment - using Docker to install RedisDownload Redis image:
docker pull redis
Configure port mapping and directory mount and start:
mkdir -p /mydata/redis/conf touch /mydata/redis/conf/redis.conf docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \ -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \ -d redis redis-server /etc/redis/redis.conf
For convenience, set Redis to start automatically:
docker update redis --restart=always
Redis does not persist data by default. We need to modify the configuration file:
vi /mydata/redis/conf/redis.conf
Add configuration: (persistence policy: AOF)
appendonly yes
Start Redis:
docker start redis
Stop Redis:
docker stop redis
To facilitate viewing data in Redis, it is recommended to install a Redis visualization tool: RedisDesktopManager.
012 environment - development tool preparationJDK:
JDK 1.8 up.
Maven: (modify the conf/setting.xml file under the Maven installation path)
Configure alicloud image:
<mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors>
To configure a project to be compiled using JDK 1.8:
<profiles> <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> </profiles>
IntelliJ IDEA:
Configure Maven:
Install plug-in: Lombok.
Install plug-in: MyBatisX.
VsCode:
Install plug-in: Auto Close Tag.
Install plug-in: Auto Rename Tag.
Install plug-in: Chinese(Simplified) Language Pack for Visual Studio Code.
Install plug-in: ESLint.
Install plug-in: HTML CSS Support.
Install plug-ins: JavaScript(ES6) code snippets.
Install plug-in: Live Server.
Install the plug-in: open in browser.
Install plug-in: Vetur.
013 environment - configure git SSHAfter Git installation, right-click to open git bash in any directory:
Configure global user information: (user name and mailbox)
git config --global user.name "lxj" git config --global user.email "[email protected]"
Configure ssh password free login:
ssh-keygen -t rsa -C "[email protected]"
Press enter 3 times to generate the key successfully. View full key:
cat ~/.ssh/id_rsa.pub
Open the browser and enter the Gitee community:
After successful registration and login, enter the "set SSH public key" page and add the complete key just generated.
Back to git bash, configure the default use of the key: (enter yes to confirm)
ssh -T [email protected]014 environment - project structure creation & push to gitee
Log in to Gitee and create a new warehouse gulimall:
Copy the address of the warehouse, open IEDA, file new project from version control.., and clone the warehouse locally.
Create 5 services using IDEA:
- Goods and services: gulimall product
- Warehousing service: gulimall ware
- Order service: gulimall order
- Member service: gulimall member
- Coupon service: gulimall coupon
Create a service example:
The project directory after creation is as follows: (add pom.xml file manually)
Contents of pom.xml file:
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.atguigu.gulimall</groupId> <artifactId>gulimall</artifactId> <version>0.0.1-SNAPSHOT</version> <name>gulimall</name> <description>Aggregate services</description> <packaging>pom</packaging> <modules> <module>gulimall-coupon</module> <module>gulimall-member</module> <module>gulimall-order</module> <module>gulimall-product</module> <module>gulimall-ware</module> </modules> </project>
Add the pom.xml file in Maven plug-in of IDEA:
Configure files in the. gitignore file that you do not want to push to Gitee remote warehouse: (add)
**/mvnw **/mvnw.cmd **/.mvn **/target/ .idea **/.gitignore
commit,push.
015 environment - database initializationUse SQLyog to connect to MySQL.
Create database:
- gulimall_pms
- gulimall_oms
- gulimall_sms
- gulimall_ums
- gulimall_wms
Create database example:
Execute respective initialization scripts in each database:
Baidu cloud disk: extraction code 2239
Database initialization completed.