畅购商城(第一天)带你跳过所有坑

环境搭建

资料:云盘连接 提取码:sb1m

拿到资料后,把里面虚拟机进行解压,然后用VMware虚拟机软件打开Centos-changgou.vmx,
然后打开,用户名:root,密码:123456。
里面后期用到的环境都已经安装好了,不需要我们浪费时间搭建环境。
接下来需要打开VMware-编辑-虚拟网络配置 打开NAT设置

在这里插入图片描述
然后点击NAT设置,修改IP
在这里插入图片描述
接下来在CentOS终端中输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33
在这里插入图片描述
reboot重启虚拟机,然后就可以通过ssh工具对其进行连接,ip是192.168.1.99密码123456
然后进入mysql容器

docker exec -it mysql /bin/bash

重置mysql密码
首先打开配置文件的命令

vi /etc/mysql/my.cnf

在最后添加

[mysqld]
skip-grant-tables

重启msyql

docker restart mysql

再次登录

mysql -uroot -p

设置root密码为空

use mysql;

select user,authentication_string,host from user;

更新为空

update user set authentication_string='' where user='root';

flush privileges;

退出mysql,再次执行vi /etc/mysql/my.cnf,把之前添加的内容删掉,保存。

使用root登录

mysql -u root

修改密码为root

alter user 'root'@'localhost' IDENTIFIED BY 'root';

alter user 'root'@'%' IDENTIFIED BY 'root';

flush privileges;

这时你的mysql登录密码就可以使用root登录了。

navicat连接数据库

在这里插入图片描述
连接成功之后就可以看到若干数据表,查看er图我们可以发现,表与表之间并没有关联关系。
在这里插入图片描述
在我们平时做项目时,标语表之间都要遵循三范式,但是我们做大型项目的时候,不推荐三范式而推荐反三范式,建议不要创建外键,原因就是导致增删改的速度会变慢。

工程搭建

父工程搭建

先在一个目录下创建一个空的文件夹,我这里命名为changgou
然后通过idea打开这个目录,在里面创建一个模块,选择mevan
在这里插入图片描述
然后finish,在pom文件中添加以下内容

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
 </parent>

<properties>
	<skipTests>true</skipTests>
</properties>

<!--依赖包-->
<dependencies>
	<!--测试包-->
	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>
</dependencies>

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-dependencies</artifactId>
			<version>Greenwich.SR1</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

二级夫工程搭建

创建changgou_gateway、changgou_service、changgou_service_api、
changgou_web工程,工程全部为pom工程,并将所有工程的src文件删除。

这里只有这几个都要打pom包,其余一律打jar包。
1.创建changgou_gateway
pom.xml如图
在这里插入图片描述
2.创建changgou_service
pom.xml如图
在这里插入图片描述
3.创建changgou_service_api
在这里插入图片描述
4.创建changgou_web
在这里插入图片描述
项目整体结构如图
在这里插入图片描述
到此我们微服务的结构就已经搭建完成

注册中心搭建

Eureka微服务搭建

1.创建模块changgou_eureka
导入pom.xml相关依赖

<dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
</dependencies>

这个eureka在装的时候也会莫名奇妙的出现包导不进去的情况,很恶心的。
在这里不行的话就加一个版本<version>2.1.1.RELEASE</version>

然后在resources目录下创建application.yml

server:
  port: 6868
eureka:
  client:
    register‐with‐eureka: false #是否将自己注册到eureka中
    fetch‐registry: false #是否从eureka中获取信息
    service‐url:
      defaultZone: http://127.0.0.1:${
    
    server.port}/eureka/
spring:
  application:
    name: eureka

2.创建启动类
在这里插入图片描述
然后运行
看控制台告诉我们端口
在这里插入图片描述
然后打开浏览器访问这个端口:输入localhost:6868,页面大致就这个样子
在这里插入图片描述
这里也告诉我们没有任何服务注册
到此为止,我们的注册中心已经搭建了。

搭建公共模块

pom.xml依赖
创建公共模块chaunggou-common,pom.xml引入依赖。将’资源/common_entity’下
的相关资源导入工程

<dependencies>
        <!--web起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- redis 使用-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.51</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--微信支付-->
        <dependency>
            <groupId>com.github.wxpay</groupId>
            <artifactId>wxpay-sdk</artifactId>
            <version>0.0.3</version>
        </dependency>
        <!--httpclient支持-->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
    </dependencies>

这里还是那句话,如果springcloud启动依赖没有导进去,就添加<version>2.1.1.RELEASE</version>

创建com.changgou.entity包 ,包下封装相关公共实体类。

package com.changgou.entity;
/**
 * 返回结果实体类
 */
public class Result<T> {
    
    
    private boolean flag;//是否成功
    private Integer code;//返回码
    private String message;//返回消息
    private T data;//返回数据
    public Result(boolean flag, Integer code, String message, Object
            data) {
    
    
        this.flag = flag;
        this.code = code;
        this.message = message;
        this.data = (T)data;
    }
    public Result(boolean flag, Integer code, String message) {
    
    
        this.flag = flag;
        this.code = code;
        this.message = message;
    }
    public Result() {
    
    
        this.flag = true;
        this.code = StatusCode.OK;
        this.message = "执行成功";
    }
//getter and setter..
}

package com.changgou.entity;

import java.util.List;

/**
 * 分页结果类
 */
public class PageResult<T> {
    
    
    private Long total;//总记录数
    private List<T> rows;//记录
    public PageResult(Long total, List<T> rows) {
    
    
        this.total = total;
        this.rows = rows;
    }
    public PageResult() {
    
    
    }
//getter and setter ......
}
package com.changgou.entity;

/**
 * 返回码
 */
public class StatusCode {
    
    
    public static final int OK=20000;//成功
    public static final int ERROR =20001;//失败
    public static final int LOGINERROR =20002;//用户名或密码错误
    public static final int ACCESSERROR =20003;//权限不足
    public static final int REMOTEERROR =20004;//远程调用失败
    public static final int REPERROR =20005;//重复操作
}

猜你喜欢

转载自blog.csdn.net/qq_45455361/article/details/104316395#comments_22951734