加载中...
avatar
文章
42
标签
25
分类
21
首页
Java
Spring全家桶
  • Spring
  • SpringBoot
  • SpringCloud
JVM
源码
  • Mybatis
  • HashMap
归档
其他
  • 互联网电子书汇总
  • JAVA八股文指南
  • 历史
  • 相册
关于
Logo码农Stormling谷粒商城(一)| 环境搭建
搜索
首页
Java
Spring全家桶
  • Spring
  • SpringBoot
  • SpringCloud
JVM
源码
  • Mybatis
  • HashMap
归档
其他
  • 互联网电子书汇总
  • JAVA八股文指南
  • 历史
  • 相册
关于

谷粒商城(一)| 环境搭建

发表于2021-11-15|更新于2025-01-07|谷粒商城
|总字数:1.9k|阅读时长:9分钟|浏览量:

Docker 安装

Docker 安装MySQL

  1. 下载镜像

    docker pull mysql:5.7
  2. 创建实例

    docker run -p 3307: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

    参数说明:

    • -p 3306:3306:-p 主机端口:容器端口,将容器的3306端口映射到主机的3306端口
    • -v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
    • -v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
    • -v /mydata/mysql/data:/var/lib/mysql:将配置文件夹挂载到主机
    • -e MYSQL_ROOT_PASSWORD=root:初始化root用户密码
    • -d mysql:5.7:表示后台运行(-d) 镜像mysql:5.7 –>查看镜像docekr images
  3. 进去docker 容器

    root@af26dd647c9a:/# docker exec -it mysql /bin/bash
    root@af26dd647c9a:/# whereis mysql
    mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql
  4. mysql配置 my.cnf

    [root@lingzx conf]# 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
    lower_case_table_names=1
  5. 查看docker中MySQL的配置

    cd /etc/mysql
    cat my.cnf
  6. 开机自启

    docker update mysql --restart=always

Docker 安装Redis

  1. 下载redis 镜像

    docker pull redis
  2. 创建实例并启动

    # 由于 redis容器 /etc/redis目录下没有 redis.conf ,所以需要我们预先在主机上创建一个 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
    
    # 连接 docker中的 redis的控制台
    docker exec -it redis redis-cli
  3. 配置持久化

    当前版本的redis默认配置了【文件追加写持久化】aof

    vi /mydata/redis/redis.conf
    
    appendonly yes
    
    docker restart redis
  4. 开机自启

    docker update redis --restart=always

统一环境

Maven 3.6.1

链接: https://pan.baidu.com/s/1Jd5EAXADSEFop2QT8sxzBA 提取码: 38iw 复制这段内容后打开百度网盘手机App,操作更方便哦

配置阿里云镜像

<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> 

配置 JDK 1.8 编译环境

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

配置本地仓库

<localRepository>D:\Program Files\Maven\LocalWareHouse</localRepository>

IDEA 安装插件

  • lombok
  • MybatisX

Vscode 安装配置

  • Auto Close Tag
  • Auto Rename Tag
  • Chinese (Simplified)
  • ESLint
  • HTML CSS Support
  • HTML Snippets
  • JavaScript(ES6)
  • Live Server
  • open in browser
  • Vetur

安装配置 Git

  1. 下载 git:https://git-scm.com

  2. 配置 git ,进入git bash

    # 配置用户名
    git config --global user.name 'username'
    # 配置邮箱
    git config --global user.email 'username@email.com'
  3. 配置 shh 免密登录,进入git bash

    ssh-keygen -t rsa -C 'xx@xxx.com'

    三次回车,查找 id_rsa 和 id_rsa.pub

  4. 登录 gitee,在设置里面找到 SSH KEY 将 .pub 文件的内容粘贴进去

    # 查看是否成功
    ssh -T git@gitee.com 

创建项目

  1. 商品服务、仓储服务、订单服务、优惠券服务、用户服务

    共用:

    1. web 、openfeign
    2. 每个服务,包名 com.atguigu.gulimall.xxx(product/order/ware/coupon/member)
    3. 模块名:gulimall-coupon
  2. 添加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 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>聚合服务</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>
  3. 设置忽略提交内容 .gitgnore

    **/mvnw
    **/mvnw.cmd
    
    **/.mvn
    **/target/
    
    .idea
    **/.gitignore

    image-20220323234601504

  4. 提交并推送到仓库

数据库设计 PowerDesigner

  1. image-20220324004223247

  2. image-20220324004234654

  3. 每个微服务创建自己的数据库

人人开源快速开发

后端管理 renren-fast

  1. 克隆项目

    git clone git@gitee.com:renrenio/renren-fast.git
  2. 将renren-fast 放在gulimall项目pom中 module

    <module>renren-fast</module>
  3. 新增数据库 gulimall_admin

  4. 修改pom

    1. 关联gulimall

      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.3.7.RELEASE</version>
          <relativePath/>
      </parent>
    2. 解决@NotBlank 和 @Email 报错

      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-validation</artifactId>
      </dependency>
  5. 修改数据库配置,连接到 gulimall_admin 的配置信息

前端管理 renren-fast-vue

  1. 克隆项目

    git clone git@gitee.com:renrenio/renren-fast-vue.git
  2. 将项目拖到VSCode中

  3. 统一配置

    1. nodeJs,

      node 版本 14 可以解决所有的报错

      关注 node.js 的 npm 功能

      NPM 是NodeJS的包管理工具,JS-NPM,Java-Maven

      • 官网下载安装,node -v 检查版本

      • 配置npm 淘宝镜像

        npm config set registry http://registry.npm.taobao.org/
      • 下载依赖包

        npm install
      • 报错处理

        npm install --save  -g core-js@^3
      • node-sass报错 是由于版本的问题,在package.json中可以解决

    2. Vue

代码生成 renren-generator

  1. 克隆项目

    git clone git@gitee.com:renrenio/renren-generator.git
  2. 将项目拖到 idea 中

  3. 修改配置(以 product 模块为例子)

    • 修改 generator.properties

      #代码生成器,配置信息
      mainPath=com.atguigu
      #包名
      package=com.atguigu.gulimall
      moduleName=product
      #作者
      author=Mr.Ling
      #Email
      email=lingzhexi@163.com
      #表前缀(类名不会包含表前缀)
      tablePrefix=pms_
    • 修改 Controller.java.vm 模板

      注释 @RequeiresPermissions 注解
      //@RequiresPermissions("${moduleName}:${pathName}:list")
    • 修改数据库配置( pms )

      spring:
        datasource:
          type: com.alibaba.druid.pool.DruidDataSource
          #MySQL配置
          driverClassName: com.mysql.cj.jdbc.Driver
          url: jdbc:mysql://localhost:13306/gulimall_pms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
          username: root
          password: root
    1. 启动项目,生成代码
    • 点击生成代码

      image-20220407215910844

    • 将代码放到 product 模块中

新增 gulimall-common

  • 通用的依赖模块 ,product 模块引用该模块

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.22</version>
    </dependency>
    <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>2.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpcore</artifactId>
        <version>4.4.14</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
        <version>2.3.7.RELEASE</version>
    </dependency>

整合Mybatis-pus

  1. 导入依赖

    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.3.1</version>
    </dependency>
  2. 配置

    1. 配置数据源

      1. 导入MySql 驱动

        推荐使用 8 版本的Mysql connector

        image-20220410002401508

        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
        </dependency>
      2. 整合 application.yml

        server:
            port: 8080
        spring:
            application:
                name: gulimall-product
            datasource:
                username: root
                password: root
                url: jdbc:mysql://localhost:13306/gulimall_pms
                driver-class-name: com.mysql.cj.jdbc.Driver
        
    2. 配置 mybaits-plus

      1. 主启动配置 @MapperScan("com.atguigu.gulimall.product.dao")

        image-20220410004352680

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

        默认位置类路径下的 classpath*:/mapper/**/*.xml

        image-20220410004908204

        mybatis-plus:
        	mapper-locations: classpath:/mapper/**/*.xml
      3. 设置主键自增配置

        # 填写 id 自动联想出来
        mybatis-plus: 
         global-config:
                db-config:
                    id-type: auto

    ​ 各模块最终需要依赖到 gulimall-common

文章作者: stormling
文章链接: http://www.stormling.top/posts/57306.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 码农Stormling!
谷粒商城
cover of previous post
上一篇
谷粒商城(二)| 整合微服务
整合微服务 搭配方案 SpringCloud Alibaba - Nacos : 注册中心 (服务发现/注册) SpringCloud Alibaba - Nacos : 配置中心 (动态配置管理) SpringCloud - Ribbon : 负载均衡 SpringCloud - Feign : 声明式 HTTP 客户端 (调用远程服务) SpringCloud Alibaba - Sentinel : 服务容错 (限流、降级、熔断) SpringCloud - Gateway : API 网关 (webflux 编程模式) SpringCloud - Sleuth : 调用链监控 SpringCloud Alibaba - Seata : 原 Fescar 即分布式事务解决方案 阿里巴巴中文文档:SpringCloud Alibab 中文文档 版本选择SpringCloud与SpringBoot SpringCloud - SpringBoot 版本对比(SpringCloud 官网) ...
cover of next post
下一篇
自定义注解场景使用
自定义注解 使用场景 登录校验 AOP日志打印 项目示例:https://gitee.com/lingzhexi/customer-annotation-demo Java 自定义注解一般使用场景为:【自定义注解 + 拦截器或者 AOP】 一. 什么是注解 (Annotation)Java 注解是什么,以下是引用自维基百科的内容 Java 注解又称 Java 标注,是 JDK5.0 版本开始支持加入源代码的特殊语法元数据。 Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。 在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容。 当然它也支持自定义 Java 标注。 二. 注解体系图元注解:java.lang.annotation中提供了元注解,可以使用这些注解来定义自己的注解。主要使用的是 Target 和 Retention...
相关推荐
cover
2021-11-22
谷粒商城(三)| 前端基础
前端基础前后端对比 ES6 ECMAScript 6.0(以下简称 ES6,ECMAScript是一种由Ecma国际通过ECMA-262标准化的脚本), 是JavaScript语言的下一代标准,2015年6月正式发布,从ES6开始的版本号采用年号,如ES2015,就是ES6。ES2016就是ES7。 ECMAScript是规范,JS的规范的具体实现。 let & const 作用域:var在{}之外也起作用 let在{}之外不起作用 声明次数:var 多次声明同一变量不会报错,let多次声明会报错,只能声明一次。 变量提升:var 会变量提升(打印和定义可以顺序反);let 不存在变量提升(顺序不能反) const 声明之后不允许改变 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> ...

评论
ValineGitalk
avatar
stormling
文章
42
标签
25
分类
21
Follow Me
公告
欢迎大家来到Stormling博客
目录
  1. 1. Docker 安装
    1. 1.1. Docker 安装MySQL
    2. 1.2. Docker 安装Redis
  2. 2. 统一环境
    1. 2.1. Maven 3.6.1
    2. 2.2. IDEA 安装插件
    3. 2.3. Vscode 安装配置
    4. 2.4. 安装配置 Git
  3. 3. 创建项目
    1. 3.1. 数据库设计 PowerDesigner
    2. 3.2. 人人开源快速开发
      1. 3.2.1. 后端管理 renren-fast
      2. 3.2.2. 前端管理 renren-fast-vue
      3. 3.2.3. 代码生成 renren-generator
      4. 3.2.4. 新增 gulimall-common
    3. 3.3. 整合Mybatis-pus
最新文章
面向八股文面试专场
面向八股文面试专场2025-01-22
【每日早报】-2025-01-21 - 星期二
【每日早报】-2025-01-21 - 星期二2025-01-21
规则引擎 Drools 8+ 快速入门
规则引擎 Drools 8+ 快速入门2024-12-11
数据库系列(二) | Mybatis Plus 3.0+快速入门
数据库系列(二) | Mybatis Plus 3.0+快速入门2024-12-09
分布式系列(二) | Redisson分布式锁
分布式系列(二) | Redisson分布式锁2024-12-05
©2019 - 2025 By stormling
码农Stormling程序员,关注公众号【码农Stormling】回复【面试】获取最全面试pdf
搜索
数据加载中