谷粒商城-第一天(环境搭建)

学习环境搭建

(1)安装VirtualBox

谷粒商城-第一天(环境搭建)
  • 下载完成后,一路安装即可

(2)安装vagrant来为VirtualBox安装镜像

vagrant的常用命令(执行了init之后的命令所在的文件夹必须有Vagrantfile)

  • 运行 vagrant init centos/7,即可初始化一个 centos7 系统(在哪个目录执行,就会在哪个目录创建一个Vagarntfile文件)
  • 担心下载慢就: vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
  • 运行 vagrant up 即可启动虚拟机。系统 root 用户的密码是 vagrant,还会自动生成一个vagrant用户
  • vagrant ssh自动使用vagrant用户连接虚拟机
  • vagrant upload source [destination] [name|id]:上传文件

使用vagrant下载太慢的,可以在官方镜像仓库中先下载好镜像,然后执行如下命令

vagrant box add centos/7 D:\a_dev_software\mall\vagrnt_centos\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
注意命令还是要在使用了vagrant init生成的Vagrantfile目录中使用
vagrant up

修改通过VirtuleBox修改Linux系统,不使用端口转发,给虚拟机一个默认地址(2种办法)

  • 修改Vagrantfile,设置ip地址为VirtualBox虚拟网卡所在地址的网段。

谷粒商城-第一天(环境搭建)
  • 例如我通过ipconfig查看到了VirtualBox的ip为 192.168.51.1 那么我配置ip地址时,只需要跟他在同一个网段就好
  • 例如:
    config.vm.network "private_network", ip: "192.168.56.10"
    谷粒商城-第一天(环境搭建)
  • 重启centos
    vagrant reload

(3)安装docker

卸载Docker(可选)

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

安装yum-utils工具(安装前最好配置一下yum的下载镜像)

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

更新本地镜像源

设置docker镜像源
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

安装Docker,并且关闭Linux防火墙、配置镜像加速器

yum install -y docker-ce

关闭
systemctl stop firewalld
禁止开机启动防火墙
systemctl disable firewalld
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'eof' { "registry-mirrors": ["https: 01h7qfqd.mirror.aliyuncs.com"] } eof sudo systemctl daemon-reload restart docker < code></-'eof'>

(4)使用docker安装MYSQL

  • 拉取mysql镜像
docker pull mysql:5.7
  • 创建实例并启动
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
  • 修改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
  • 进入容器内部,开启远程连接
docker exec -it mysql mysql -uroot -proot

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
flush privileges;
  • 重启该容器即可
    docker restart mysql
  • 如果想要进入容器系统内部,执行如下命令
    docker exec -it mysql /bin/bash

进入MYSQL交互界面后,可以通过如下命令查看含有mysql目录的文件地址

whereis mysql

(5)使用docker安装redis

  • 拉取redis镜像
    docker pull redis
  • 创建文件夹与文件(不然直接挂载redis.conf会变成一个目录)
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
  • 修改配置文件,开启aof持久化
    vi /mydata/redis/conf/redis.conf
  • 添加一行
&#x662F;&#x5426;&#x5F00;&#x542F;AOF&#x529F;&#x80FD;
appendonly yes

docker修改已经创建的容器参数

docker update redis –restart=always

(6)统一开发环境

Maven使用3.6.1

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

  <mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://central.maven.org/maven2</url>
    <mirrorof>central</mirrorof>
  </mirror>

  <mirror>
    <id>junit</id>
    <name>junit Address/</name>
    <url>http://jcenter.bintray.com/</url>
    <mirrorof>central</mirrorof>
  </mirror>
  • 配置编译版本
    <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>

配置IDEA开发环境

  • 配置好Maven地址、配置文件、仓库地址
    谷粒商城-第一天(环境搭建)
  • 安装2个插件( lombokmybatisx、Alibaba Java Coding Guidelines、AiXcoder、Codota AI)

配置好VSCode

  • 安装如下插件
    谷粒商城-第一天(环境搭建)

安装配置git

&#x914D;&#x7F6E;&#x7528;&#x6237;&#x540D;
git config --global user.name "codestars" //&#xFF08;&#x540D;&#x5B57;&#xFF09;
&#x914D;&#x7F6E;&#x90AE;&#x7BB1;
git config --global user.email "codestars@163.com"
&#x6267;&#x884C;&#x5982;&#x4E0B;&#x547D;&#x4EE4;&#x3002; &#x8FDE;&#x7EED;&#x4E09;&#x6B21;&#x56DE;&#x8F66;&#x3002;
ssh-keygen -t rsa -C "codestars@163.com"

&#x67E5;&#x8BE2;&#x516C;&#x94A5;
cat ~/.ssh/id_rsa.pub

&#x767B;&#x5F55;&#x8FDB;&#x5165; gitee&#xFF0C;&#x5728;&#x8BBE;&#x7F6E;&#x91CC;&#x9762;&#x627E;&#x5230; SSH KEY &#x5C06;.pub &#x6587;&#x4EF6;&#x7684;&#x5185;

#&#x6D4B;&#x8BD5;&#x662F;&#x5426;&#x6210;&#x529F;
ssh -T git@gitee.com

谷粒商城-第一天(环境搭建)

(6)在码云上创建一个仓库并导入到IDEA当中

  • 创建仓库
    谷粒商城-第一天(环境搭建)
  • 使用IDEA导入已经创建的仓库,并创建相对应的模块
    谷粒商城-第一天(环境搭建)

谷粒商城-第一天(环境搭建)

(7)初始化项目工程

创建项目微服务

  • 初始化微服务一共有:
  • product商品服务
  • order订单服务
  • ware仓储服务
  • coupon优惠券服务
  • member用户会员服务
  • 统一的模块名为 : gulimall-product
  • 统一的组织名: com.codestars.gulimall
  • 统一需要先引入的模块: web&#x3001;openfeign
  • 统一的包格式为: com.codestars.gulimall.product | com.codestars.gulimall.order
    谷粒商城-第一天(环境搭建)

进行模块的聚合

  • 随便复制一个模块中的pom到父工程的第一层目录下
    谷粒商城-第一天(环境搭建)
  • 将主工程添加到maven当中

修改主工程中的.gitignore文件

target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
https://github.com/takari/maven-wrapper#usage-without-binary-jar
.mvn/wrapper/maven-wrapper.jar

**/mvnw
**/mvnw.cmd

**/.mvn
**/target/
.idea

**/.gitignore

将所有的文件都添加到暂存区并提交,再push到码云

谷粒商城-第一天(环境搭建)

谷粒商城-第一天(环境搭建)

谷粒商城-第一天(环境搭建)

(8)初始化数据库,每个模块都使用单独的数据库

  • 创建如下
CREATE DATABASE gulimall_oms /*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_pms /*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_sms /*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_ums /*!40100 DEFAULT CHARACTER SET utf8mb4 */
CREATE DATABASE gulimall_wms /*!40100 DEFAULT CHARACTER SET utf8mb4 */
  • 为每个数据库都添加对应的表
    谷粒商城-第一天(环境搭建)

(9)在码云上找到人人开源,拷贝如下2个项目作为本商城的(后台管理前台跟后台)

  • 克隆下来之后,把其中的.git文件夹都删了
    谷粒商城-第一天(环境搭建)
    谷粒商城-第一天(环境搭建)
    谷粒商城-第一天(环境搭建)

在gulimall项目中引入renren-fast并进行数据库等配置

  • 将renren-fast项目放入到我们的项目当中
    谷粒商城-第一天(环境搭建)
  • 在父工程中添加该模块
    <module>renren-fast</module>
  • 在maven设置中将其引入
    谷粒商城-第一天(环境搭建)
  • 找到该项目下的db文件夹,找到mysql.sql文件,将其复制一份,更名为gulimall_admin.sql
    谷粒商城-第一天(环境搭建)
    谷粒商城-第一天(环境搭建)
  • 创建一个数据库,叫做 gulimall-admin,在该数据库中执行gulimall_admin.sql文件
CREATE DATABASE gulimall_admin /*!40100 DEFAULT CHARACTER SET utf8mb4 */
  • 查看renren-fast项目的applicaiton.yml文件,发现激活的是dev开发环境,因此找到application.dev.yml修改数据库的连接信息,将其改成自己的
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        druid:
            driver-class-name: com.mysql.cj.jdbc.Driver
            url: jdbc:mysql://192.168.56.10:3306/gulimall_admin?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
            username: root
            password: root
  • 直接运行该项目,如果出现报错就使用maven来clean一下,运行后访问如下网址,如果能访问到,代表项目启动成功
    http://localhost:8080/renren-fast/

使用vscode打开renren-fast-vue项目进行配置后运行

  • 下载安装node.js,下载安装后配置淘宝镜像
    npm config set registry https://registry.npm.taobao.org
  • 在该项目下打开命令行,输入 npm install
  • 将项目运行起来: npm run dev,运行时候发现提示webpack-dev-server不是内部或外部命令,也不是可运行的程序
  • 因此安装一下该命令 npm install webpack-dev-server --save-dev
  • 再次输入: npm run dev运行前端项目renren-fast-vue

(10)在人人开源中下载逆向开源的项目,完成对代码的生成

  • 在码云中找到人人开源中的代码生成项目克隆下来
    谷粒商城-第一天(环境搭建)
  • 将其拷贝到gulimall项目下
    谷粒商城-第一天(环境搭建)
  • 在父工程中将其引入
    <module>renren-generator</module>
  • 在maven中将其加入
    谷粒商城-第一天(环境搭建)
  • 修改其配置文件application.yml(数据源,需要生成哪个数据库中的代码,就写哪个数据库)
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    #MySQL&#x914D;&#x7F6E;
    driverClassName: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://192.168.56.10:3306/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    username: root
    password: root
  • 修改配置文件generator.properties
&#x4E3B;&#x8DEF;&#x5F84;
mainPath=com.codestars
&#x751F;&#x6210;&#x7684;&#x5305;
package=com.codestars.gulimall
&#x6A21;&#x5757;&#x540D;&#x79F0;
moduleName=coupon
&#x8868;&#x524D;&#x7F00;
tablePrefix=sms_
  • 修改Controller中的模板,将shiro有关的注释掉
    谷粒商城-第一天(环境搭建)
## import org.apache.shiro.authz.annotation.RequiresPermissions;
## @RequiresPermissions("${moduleName}:${pathName}:list")
  • 直接运行该项目,访问: localhost:80
    谷粒商城-第一天(环境搭建)
  • 依次生成5个模块都需要的代码,并将其放到对应模块当中

将生成的代码放入对应模块后创建gulimall-common普通maven模块来引用一些共同需要的依赖

  • 创建一个普通maven项目
    谷粒商城-第一天(环境搭建)
  • 修改所有子模块中的pom文件,将公共依赖引入
        <dependency>
            <groupid>com.codestars.gulimall</groupid>
            <artifactid>gulimall-common</artifactid>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
  • 引入Controller中一些公共的依赖,这些依赖的包都可以在renren-generator中找到
    例如该依赖在Controller中没有: import com.codestars.common.utils.R
  • 在gulimall-common模块中创建该目录,然后将renren-fast中的对应类引入
    谷粒商城-第一天(环境搭建)
  • 引入后如果出现一些依赖没有,可以添加依赖,或者将renren-fast中的代码都引入过来
  • 启动项目时,如果出现了 Module was compiled with an incompatible version of Kotlin. The binary version of its错误,那么就使用idea面板中的 build-> rebuild project解决

(11)nacos配置中心的常见概念

  • 命名空间:用于隔离不同微服务之间的配置文件
  • 配置集:类似于所有配置文件的集合
  • 配置ID:类似于文件名
  • 配置分组: 默认所有的配置集都属于DEFAULT_GROUP(相当于更细粒度的划分)

通过只配置bootstrap.properties来指定配置中心,其他配置可以都不写在项目中

谷粒商城-第一天(环境搭建)

配置中心的最佳实践

  • 每个微服务都有属于自己的命名空间
  • 在每个命名空间下都创建3个分组,分别为: dev、test、prod
  • 而后在每个微服务中,需要配置声明自己所在的命名空间,并且需要指定分组。

(12)需要了解的前端基础知识

  • 主要讲解ES6的一些语法

let和const声明变量

数组解构和对象结垢

字符串的4个新API以及字符串模板

函数参数默认值、不定参数、箭头函数

新增的对象API,声明对象简写、对象的函数属性简写、对象的扩展运算符

map、reduce

Promise、模块化

项目中的springcloud、springboot、springcloudalibaba版本

        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
        <spring-cloud.alibaba.version>2.2.3.RELEASE</spring-cloud.alibaba.version>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>

Original: https://www.cnblogs.com/itdqx/p/16722254.html
Author: code_Stars
Title: 谷粒商城-第一天(环境搭建)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/594000/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Redis 安装与使用

    Redis 介绍 Redis 是由 Salvatore Sanfilippo 写的 key-value 存储系统,是一个跨平台的非关系型数据库(NoSQL)。 Redis 是用C语…

    Java 2023年6月16日
    079
  • ZendFramework学习第二章(Json)

    使用Zendframework中的Zend_Json组件可以实现PHP对象与JSON对象之间的转换。 json是一种轻量级的数据交换格式。 轻量级: 1.这种格式不需要特定的容器。…

    Java 2023年5月29日
    097
  • 头歌计组实践

    头歌计组实践 一.关于用什么写Verilog Verilog是个硬件描述语言,不像高级语言用户群体那么大,所以好像没有像什么IDE那样的东西,个人目前了解有以下这么几个形式: 文本…

    Java 2023年6月7日
    087
  • Java使用定时任务详解

    定时任务 定时任务 SpringBoot定时任务 默认单线程 使用异步多线程 Spring定时任务XML配置(注解形式几乎同上) 使用springTask: —-spr…

    Java 2023年6月13日
    082
  • Java动态脚本Groovy获取Bean(奇淫技巧操作)

    前言:请各大网友尊重本人原创知识分享,谨记本人博客: 南国以南i 背景: 在Java代码中当我们需要一个Bean对象,通常会使用spring中@Autowired注解,用来自动装配…

    Java 2023年6月5日
    087
  • 会话技术Cookie&Session

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月5日
    087
  • 硬核剖析Redis单线程为什么那么快?

    Redis目前是使用率最高的内存库数据库,是企业应用开发的必备,它极高的性能和丰富的数据结构为我们的开发提供了极大的便利。它每秒可以承受10W+的QPS,但却是单线程的处理模型,为…

    Java 2023年6月16日
    097
  • 设计模式 13 解释器模式

    解释器模式(Interpreter Pattern)属于 行为型模式 解释器模式是指给定一门语言, 基于它的语法, 定义解释器来解释语言中的句子。是一种按照规定的语法进行解析的模式…

    Java 2023年6月6日
    054
  • Zookeeper-3.4.9安装

    环境: centos7 Zookeeper-3.4.9.tar.gz 官网下载 步骤 下载后上传压缩文件并解压 tar -zxvf zookeeper-3.4.9.tar.gz -…

    Java 2023年6月7日
    0100
  • Mac常用shell命令

    几个常用命令 命令名称:pwd英文:print work directory描述:查看当前工作目录的完整路径 英文全称: list描述:列出目录下的内容清单常用参数:-l:列出文件…

    Java 2023年6月13日
    085
  • MySQL 8.0安装 + 配置环境变量 + 连接 cmd

    MySQL 安装教程 搜索 MySQL,进入官网,找到 download 点击适用于 window community 版本,点击图中第二个 450.7 M 的安装包进行下载 这里…

    Java 2023年6月5日
    0142
  • python的三层架构

    项目目录规范 Foo/ |– core/ # 存放业务逻辑相关代码 | |– core.py | |– api/ # 存放接口文件,接口主要用于为业务逻辑提供数据操作。 | …

    Java 2023年6月7日
    0103
  • 设计模式在 Spring 框架中的良好应用

    在开始正文之前,请你先思考几个问题: 你项目中有使用哪些 GOF 设计模式 说一说 GOF 23 种设计模式的设计理念 说说 Spring 框架中如何实现设计模式 假设我是面试官问…

    Java 2023年5月30日
    080
  • 玩转SpringBoot之定时任务@Scheduled线程池配置

    序言 对于定时任务,在SpringBoot中只需要使用@Scheduled 这个注解就能够满足需求,它的出现也给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用…

    Java 2023年5月30日
    0142
  • 财务自由之路上的第一步:思想

    各位读者,今天吃汤圆或者饺子了吗?冬至快乐!!! 冬至新开系列 —— 财务自由之路 此为第一篇,你的思想决定你的穷富 理财 理财的定义:所有和钱有关的安排都是理财,例如:消费计划,…

    Java 2023年6月9日
    072
  • 时间操作(Java版)—获取给定日期N天后的日期

    版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/wangshuxuncom/article/details/34896777 获取…

    Java 2023年5月29日
    081
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球