Skip to content

jxby/spring-cloud-base

This branch is up to date with fp2952/spring-cloud-base:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

7f050dc · Dec 9, 2018

History

30 Commits
Jun 30, 2018
Nov 25, 2018
Jun 30, 2018
Dec 9, 2018
Nov 25, 2018
Jun 7, 2018
Jun 17, 2018
Jun 30, 2018
Jun 30, 2018
Nov 25, 2018
Nov 25, 2018
Apr 13, 2018
Aug 4, 2018
Jun 30, 2018

Repository files navigation

spring-cloud-base

微服务基础框架,基于 SpringCloud 及 SpringBoot 开发。 使用 Oauth2 统一授权、认证, Oauth示例客户端使用 Vue 开发,具有用户管理、 资源管理、 角色管理等模块,后端包括授权中心、 基础数据中心(资源服务器)等应用,可作为微服务快速开发脚手架。 可通过 docker 快速构建部署。

Demo website:http://www.mxclass.cn username: test password: 123456
phone: 13100000000 verifyCode: 1000

Model

图片待续

项目结构

├─spring-cloud-base
│  │  
│  ├─api-gateway--------------网关负载中心
│  │ 
│  ├─auth-center-----------------OAuth2服务授权中心
│  │  ├─auth-center-api----------------授权中心公共模块
│  │  ├─auth-center-provider----------------授权中心服务端
│  │  ├─auth-spring-boot-autoconfigure----------------授权中心autoconfigure
│  │  └─auth-spring-boot-starter----------------授权中心starter模块
│  │ 
│  ├─common----------------通用脚手架
│  │ 
│  ├─config-git-----------------配置中心
│  │ 
│  ├─db-mybatis-pagehelper---------------Mybatis通用Mapper、分页模块
│  │  ├─db-spring-boot-autoconfigure----------------autoconfigure
│  │  ├─db-spring-boot-samples----------------db模块使用示例
│  │  └─db-spring-boot-starter----------------db starter
│  │ 
│  ├─docker-compose---------------docker-compose编排
│  │   
│  ├─main-data--------------基础数据模块
│  │  ├─main-data-api----------------基础数据公共模块
│  │  ├─main-data-client----------------基础数据模块客户端
│  │  └─main-data-provider----------------基础数据模块服务端
│  │
│  ├─visul---------------监控
│  │  ├─monitor----------------admin监控
│  │  └─zipkin-db----------------zipkin链路追踪
│  ├─mc-service---------------消息服务
│  │  
│  └─web-app--------------vue前端应用
│

相关博文

Quick Start

依赖环境

JDK8、 Maven、 Mysql、 Redis、Consul、 Rabbitmq、Nodejs、 Docker(可选)、 docker-compose(可选)

运行步骤

  1. git clone https://github.com/fp2952/spring-cloud-base.git
  2. Mysql导入数据: 运行main-data/schema.sql 文件;
  3. 更改配置文件,此项目默认本地配置,更改 config-git/src/main/resource/config 下的配置文件,主要需修改数据库链接、 Redis链接、 Rabbitmq链接等;
  4. 启动 Consul (下载地址: https://www.consul.io/downloads.html), window下载解压完为exe可执行文件, 进入其文件夹下 cmd -> consul agent -dev 启动,此时可访问 http://localhost:8500 查看Consul Ui页面;
  5. 启动redis、 Rabbitmq;
  6. 依此启动 config-git/ConfigServerApplication.main(配置中心)、auth-center/auth-center-provider/AuthCenterProviderApplication.main(服务授权中心)、 api-gateway/ApiGatewayApplication.main()(网关负载中心)、 main-data/main-data-provider/MainDataApplication.main()(基础数据模块),注意启动顺序,配置中心必须最先启动,网关和基础数据模块依赖授权模块的 jwt/key-uri point;启动后可在Consul图形界面上即可看到已注册的服务;
  7. 前端Vue项目需node环境(https://nodejs.org/en/download/), cd web-app、安装依赖 npm install、 启动项目 npm dev run , 需更改后端接口地址, /static/config.js/window.serverconf/development

通过 docker-compose 快速启动

  1. 需要 docker-compose 环境,windows 可安装 DockerToolbox。
    需先通过 Maven 插件 docker-maven-plugin 打包镜像,
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>${docker.plugin.version}</version>
                <configuration>
                    <imageName>${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
</build>
  1. 分别构建 auth-center-provider、 main-data-provider、 api-gateway:
mvn clean
mvn package docker:build

构建 node-app:

cd /spring-cloud-base/web-app
docker build -t node-app .
  1. 更改配置 docker-compose.yml:
     node-app:
     image: node-app
     ports:
      - '8080:8080'
     depends_on:
      - 'auth-center'
      - 'api-gateway'
      # 基础路径,授权时的redirectUrl,为 宿主机IP:本容器映射端口
      - BASE_URL=http://192.168.99.100:8080
      # 后台接口,对于网关
      - SERVER_URL=http://192.168.99.100:18000
      # 授权中心
      - AUTH_URL=http://192.168.99.100:18001/auth
  1. 运行
cd /spring-cloud-base/docker-compose
docker-compose up [-d]

通过共享镜像启动

Preview

  • 登陆页:
    avatar

  • 用户管理:
    avatar

  • 角色管理:
    avatar

  • 应用管理:
    avatar

  • 系统管理:
    avatar

  • 模块管理:
    avatar

更新日志

  • 2018-06 spring security登陆验证扩展 手机验证码,二维码扫码登陆、 引入i18n国际化、 集成git配置中心、admin监控、 链路追踪、Springcloud 升级为Edgware,Consul升级为最新1.2
  • 2018-05 完成基础数据模块开发、 docker容器编排
  • 2018-05 授权中心整和Jwt、 SpringSecurity,使用 OAuth2 授权
  • 2018-03 init, 完成公共模块设计、 SpringBoot starter开发

About

spring-cloud、spring-security

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 50.9%
  • Vue 27.9%
  • JavaScript 13.5%
  • FreeMarker 4.0%
  • Shell 3.3%
  • Dockerfile 0.3%
  • Other 0.1%