IDEA项目-搭建快速开发的前后端连通环境


获取前后端快速开发模板

gitee官网:https://gitee.com/renrenio

  • renren-fast:是一个轻量级的后端快速开发模板
  • renren-fast-vue: 是实现renren-fast后台管理的前端功能模板
  • renren-generator:代码生成器
git clone https://gitee.com/renrenio/renren-fast.git
git clone https://gitee.com/renrenio/renren-fast-vue.git
git clone https://gitee.com/renrenio/renren-generator.git

整合renren-fast-vue到vscode中

  1. 下载Nodejs : https://nodejs.org/download/release/v10.22.1/
    下载完成,打开控制台输入node -v 查看是否安装成功
    配置npm使用淘宝镜像npm config set registry http://registry.npm.taobao.org/

  2. 将renren-fast-vue拖到vscode中,在vscode终端输入npm install开始安装
    在这里插入图片描述

  3. 运行项目npm run dev

  4. 如果安装失败,输入npm cache clean --force,删除node_modules

整合renren-fast、renren-generator到IDEA中

1. 整合renren-fast

  1. 将renren-fast添加到项目中
    在这里插入图片描述

  2. 复制sql里的语句,创建对应的数据库和表
    在这里插入图片描述
    在这里插入图片描述

  3. 修改application-dev.yml的配置数据库信息
    在这里插入图片描述

  4. 搭建成功,启动服务

2. 整合renren-generator

  1. 将renren-generator添加到项目中
    在这里插入图片描述
  2. 修改配置文件
    在这里插入图片描述
    在这里插入图片描述
  3. 开启服务,访问80端口,利用代码生成器生成代码,将main文件放入对应的微服务
    在这里插入图片描述
  4. 创建一个maven模块作为各个微服务的公共部分
    在这里插入图片描述
  5. 配置guliamll-common下的pom.xml公共依赖
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>gulimall</artifactId>
        <groupId>com.rock.gulimall</groupId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>gulimall-common</artifactId>
    <description>每一个微服务的公共依赖,bean,工具类等</description>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>7</source>
                    <target>7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>
        <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.4</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcore -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.14</version>
        </dependency>

        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
</project>
  1. 从renren-fast模块中,引入相关公共文件
    在这里插入图片描述
  2. 在gulimall-product的pom.xml中先引入gulimall-common
    在这里插入图片描述
  3. 在resource中添加application.yml,配置数据库相关数据和端口号
    在这里插入图片描述
spring:
  datasource:
    username: root
    password: 102866
    url: jdbc:mysql://192.168.10.88/gulimall_sms?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver

mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  global-config:
    db-config:
      id-type: auto

server:
  port: 7000
  1. 在主类上添加扫描包
    在这里插入图片描述

整合SpringCould微服务

1. 在gulimall-common公共模块中添加依赖管理

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.2.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
 </dependencyManagement>

2. 搭建Nacos注册中心

在docker中安装nacos/nacos-server

docker pull nacos/nacos-server

mkdir -p /mydata/nacos/init.d /docker/nacos/logs

touch /mydata/nacos/init.d/custom.properties

vim /mydata/nacos/init.d/custom.properties
management.endpoints.web.exposure.include=*

docker run -d -p 8848:8848 -e MODE=standalone -v /mydata/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties -v /mydata/nacos/logs:/home/nacos/logs --restart always --name nacos nacos/nacos-server

访问地址:http://192.168.10.88:8848/nacos
在这里插入图片描述

在gulimall-common公共模块中添加nacos注册中心的依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
    <version>3.0.3</version>
</dependency>

在微服务模块中的配置注册中心地址和模块名
在这里插入图片描述
添加openfeign请求超时配置

ribbon:
  ReadTimeout: 120000  #请求处理的超时时间
  ConnectTimeout: 30000  #请求连接的超时时间
### 配置网关反向代理
zuul:

  host:
    connect-timeout-millis: 60000  #HTTP连接超时大于Hystrix的超时时间------自己新增的------》
    socket-timeout-millis: 60000   #socket超时

在这里插入图片描述

开启注册中心服务
在这里插入图片描述

3. 测试OpenFeign远程调用微服务

在gulimall-coupon微服务模块创建远程服务
在这里插入图片描述
在gulimall-member微服务模块创建接口接收远程服务
在这里插入图片描述
调用远程服务
在这里插入图片描述
开启OpenFeign
在这里插入图片描述

4. 搭建Nacos配置中心

在gulimall-common公共模块中,导入配置中心相关依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
    <version>3.0.1</version>
</dependency>

在gulimall-coupon微服务模块中创建bootstrap.properties

# 微服务模块名
spring.application.name=gulimall-coupon
# nacos的服务地址
spring.cloud.nacos.config.server-addr=192.168.10.88:8848

开启自动刷新

@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {}

测试配置中心是否可用

  • 在gulimall-coupon微服务模块中的application.properties,添加配置参数
coupon.user.name=yan
coupon.user.age=21
  • 在CouponController中添加测试方法
@RefreshScope
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {

    @Value("${coupon.user.name}")
    private String name;

    @Value("${coupon.user.age}")
    private Integer age;

    /**
     * 测试配置中心是否可用
     * @return
     */
    @RequestMapping("/config")
    public R ConfigurationCenter(){
        return R.ok().put("name", name).put("age", age);
    }
}
  • 在nacos服务端添加配置列表(Data ID:模块名.properties)
    在这里插入图片描述
    在这里插入图片描述

5. 配置命名空间

作用:设置隔离

  • 以开发环境进行隔离(开发prop、测试test、发布dev)
  • 以微服务进行隔离

创建命名空间
在这里插入图片描述
在boostrap.properties中指定命名空间ID
spring.cloud.nacos.config.namespace=8dde4393-1ee0-4e1e-b57a-e1701d6cb3b2

6. 配置分组

在这里插入图片描述
在boostrap.properties中指定分组
spring.cloud.nacos.config.group=dev

7. 加载配置集

在nacos中创建配置集
在这里插入图片描述
在bootstrap.properties中绑定配置集
在这里插入图片描述

spring.cloud.nacos.config.extension-configs[0].data-id=datasource.yml
spring.cloud.nacos.config.extension-configs[0].group=dev
spring.cloud.nacos.config.extension-configs[0].refresh=true

spring.cloud.nacos.config.extension-configs[1].data-id=mybatis-plus.yml
spring.cloud.nacos.config.extension-configs[1].group=dev
spring.cloud.nacos.config.extension-configs[1].refresh=true

spring.cloud.nacos.config.extension-configs[2].data-id=other.yml
spring.cloud.nacos.config.extension-configs[2].group=dev
spring.cloud.nacos.config.extension-configs[2].refresh=true

8. 搭建API网关Gateway

  • 创建gulimall-gateway模块
    在这里插入图片描述
    在这里插入图片描述
  • 引入公共依赖,并排除数据库相关依赖
<dependencies>
        <dependency>
            <groupId>com.rock.gulimall</groupId>
            <artifactId>gulimall-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <exclusions>
                <exclusion>
                    <groupId>com.baomidou</groupId>
                    <artifactId>mybatis-plus-boot-starter</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
<dependencies>
  • 创建gulimll-gateway的命名空间
    在这里插入图片描述

  • 搭建注册中心
    在这里插入图片描述

# 注册中心
spring.cloud.nacos.discovery.server-addr=192.168.10.88:8848
spring.application.name=gulimall-gateway
spring.cloud.nacos.discovery.namespace=90b0a7b4-7618-489a-85f4-aa87775da06a
server.port=88

开启注册服务
在这里插入图片描述

  • 搭建配置中心
    在这里插入图片描述
# 配置中心
spring.cloud.nacos.config.server-addr=192.168.10.88:8848
spring.application.name=gulimall-gateway
spring.cloud.nacos.config.namespace=90b0a7b4-7618-489a-85f4-aa87775da06a

开启实时刷新
在这里插入图片描述

  • 配置路由规则
    在这里插入图片描述
spring:
  cloud:
    gateway:
      routes:
        - id: test_route
          uri: https://www.baidu.com
          predicates:
            - Query=url,baidu
  • 3
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值