谷粒学院项目介绍
尚硅谷项目:http://www.atguigu.com/
一、功能简介
谷粒学院,是一个B2C模式的职业技能在线教育系统,分为前台用户系统和后台运营平台。
二、技术架构
系统开发阶段使用了前后端分离架构,部署阶段使用了容器技术
后端环境搭建
01-创建父工程
一、工程结构
-
guli-parent:根目录(父工程),管理子模块:
-
-
common**:公共模块父节点**
-
- common-util:工具类模块,所有模块都可以依赖于它
- service-base:service服务的base包,包含service服务的公共配置类,所有service模块依赖于它
-
infrastructure**:基础服务模块父节点**
-
- api-gateway:api网关服务
-
service**:api接口服务父节点**
-
- service-edu:教学相关api接口服务
- service-oss:阿里云oss api接口服务
- service-cms:cms api接口服务
- service-sms:短信api接口服务
- service-trade:订单和支付相关api接口服务
- service-statistics:统计报表api接口服务
- service-ucenter:会员api接口服务
- service-vod:视频点播api接口服务
-
二、创建父工程guli-parent
1、创建Spring Boot项目
使用 Spring Initializr 快速初始化一个 Spring Boot 项目
Group:com.atguigu
Artifact:guli-parent
2、删除src目录
3、配置SpringBoot版本
3.1、SpringBoot版本依赖
<version>2.2.1.RELEASE</version>
4、配置pom依赖版本号
<properties>
<java.version>1.8</java.version>
<cloud.version>Hoxton.RELEASE</cloud.version>
<alibaba.version>2.2.0.RELEASE</alibaba.version>
<mybatis-plus.version>3.3.1</mybatis-plus.version>
<velocity.version>2.0</velocity.version>
<swagger.version>2.7.0</swagger.version>
<aliyun.oss.version>3.1.0</aliyun.oss.version>
<jodatime.version>2.10.1</jodatime.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<commons-io.version>2.6</commons-io.version>
<commons-lang.version>3.9</commons-lang.version>
<httpclient.version>4.5.1</httpclient.version>
<jwt.version>0.7.0</jwt.version>
<aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>
<aliyun-java-sdk-vod.version>2.15.2</aliyun-java-sdk-vod.version>
<aliyun-sdk-vod-upload.version>1.4.11</aliyun-sdk-vod-upload.version>
<fastjson.version>1.2.28</fastjson.version>
<gson.version>2.8.2</gson.version>
<json.version>20170516</json.version>
<commons-dbutils.version>1.7</commons-dbutils.version>
<alibaba.easyexcel.version>2.1.1</alibaba.easyexcel.version>
<apache.xmlbeans.version>3.1.0</apache.xmlbeans.version>
</properties>
5、配置pom依赖
<dependencyManagement>
<dependencies>
<!--Spring Cloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--mybatis-plus 持久层-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--aliyunOSS-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun.oss.version}</version>
</dependency>
<!--日期时间工具-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime.version}</version>
</dependency>
<!--文件上传-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<!--commons-io-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<!--commons-lang3-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang.version}</version>
</dependency>
<!--httpclient-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<!-- JWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<!--aliyun-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>${aliyun-java-sdk-core.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-vod</artifactId>
<version>${aliyun-java-sdk-vod.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-sdk-vod-upload</artifactId>
<version>${aliyun-sdk-vod-upload.version}</version>
</dependency>
<!--json-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>${commons-dbutils.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${alibaba.easyexcel.version}</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>${apache.xmlbeans.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
5.1、pom.xml
02-创建common
一、创建父模块common
1、创建模块
在guli-parent下创建普通maven模块
Group:com.atguigu
Artifact:common
2、删除src目录
二、创建模块common-util
在common下创建普通maven模块
Group:com.atguigu
Artifact:common-util
**注意项目路径:**D:\project\edu\java\guli-parent\common\common-util
三、创建模块service-base
1、创建模块
在common下创建普通maven模块
Group:com.atguigu
Artifact:service-base
**注意项目路径:**D:\project\edu\java\guli-parent\common\service-base
2、配置pom
<dependencies>
<dependency>
<groupId>com.atguigu</groupId>
<artifactId>common-util</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
</dependency>
<!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--日期时间工具-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<!--lang3-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<!--commons-io-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!--json-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
<!--httpclient-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
</dependencies>
03-创建service
一、创建父模块service
1、创建模块
在guli-parent下创建普通maven模块
Group:com.atguigu
Artifact:service
2、删除src目录
3、配置pom
<dependencies>
<dependency>
<groupId>com.atguigu</groupId>
<artifactId>service-base</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
二、创建模块service-edu
在service下创建普通maven模块
Group:com.atguigu
Artifact:service-edu
**注意项目路径:**D:\project\edu\java\guli-parent\service\service-edu
04-IDEA连接码云
一、创建代码仓库
1、注册登录
官方网址:https://gitee.com/
2、新建仓库
选择“新建仓库”
填写“仓库名称”等项目,点击“创建”
3、得到代码仓库的地址
二、安装Git
1、下载
官方网址:https://git-scm.com/downloads
2、安装
3、设置账户全局信息
安装成功后打开Git Bash,输入下列命令,设置git全局用户名和邮箱
git config --global user.name Strive_Chen
git config --global user.email *******@qq.com
最后使用 git config -list 命令查看配置的信息
三、idea连接gitee
1、配置Git
Configure => Settings => Version Control => Git
2、创建本地仓库
打开项目并点击菜单栏上的 VCS => Import into Version Control => Create Git Repository,创建本地仓库
在打开的【Create Git Repository】对话框内选择本地仓库的位置,这里我选择项目的根目录,然后点击“OK”
3、配置 .gitignore
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
**/mvnw
**/mvnw.cmd
**/.mvn
**/target/
4、加入本地代码仓库
右击项目,点击 Git => Add
接着右击项目,点击 Git => Commit Directory
在打开的窗口中选择要上传到本地仓库的代码并添加注释后提交到本地仓库内
5、连接远程仓库
右击项目,点击 Git => Repository => Remotes
在打开的【Git Remotes】窗口中添加码云的远程仓库地址
第一次连接需要输入gitee的用户名和密码
6、推送到远程仓库
右击项目,点击 Git => Repository => Push,在打开的【Push commits】内可以看到已提交到本地仓库的提交信息。点击 “Push” 按钮将本地仓库的代码上传到码云上。
推送成功:
如果出现错误:Push rejected: Push to origin/master was rejected。则说明第一次提交代码需要和远程仓库已有文件Merge。
在git项目对应的目录位置右键打开Git Bash Here(注意项目目录的位置)
然后在命令窗输入下面命令:
git pull origin master --allow-unrelated-histories
提示输入本次Merge代码的原因,退出命令行编辑状态。
再次Push代码,可以成功进行提交。
四、git中文乱码
1、git命令中文乱码
原因:在默认设置下,中文名不能正确显示,而是显示为八进制的字符编码。
解决办法:将git 配置文件 core.quotepath项设置为false。
git bash 终端输入命令:
git config --global core.quotepath false
2、git bash 终端中文乱码
在git bash的界面中右击空白处,弹出菜单,选择:
选项 => 文本 => 本地Locale,设置为zh_CN,而旁边的字符集选框选为UTF-8。
英文显示则是:
Options => Text => Locale,改为zh_CN,Character set改为UTF-8
五、重置凭证
如果想要删除windows系统记住的gitee的用户凭证,则使用如下的方式
六、IDEA中解除git关联
File => Settings => Version Control 选中项目,点击右边的红色减号,就解除了,
然后去项目目录下删除 .git 这个文件夹。
Push代码,可以成功进行提交。