1 Star 0 Fork 46

weir代码库 / SuperBoot

forked from 7040210 / SuperBoot 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

项目介绍

License GitHub stars GitHub forks

  SuperBoot框架是基于SpringCloud、SpringBoot敏捷开发框架,框架开发初衷是为了方便快速开发项目,无需关心基础代码的编写,可以更专注于业务本身。框架实现基于JWT Token授权验证,实现单点登录SSO,服务鉴权,实现Redis数据缓存,在保证数据一致性的前提下提高接口响应速度。无缝集成MongoDB数据库,提供对非结构型数据存储,解决关系型数据库瓶颈问题。集成swagger框架,实现自动API测试及调试功能,解决程序员最反感的编写技术文档的问题。数据源基于Druid,提供更高性能及SQL监控。框架提供统一异常处理,统一响应结果,增加对JPA、Mongo的AOP拦截,由Snowflake ID自动生成赋值主键,数据实体无需开发均可由Idea自动生成。增删改查默认基于方法名称即可实现,无需写具体SQL。查询支持JPA、QueryDSL、Mybatis等方式。支持数据库读写分离,Feign增加服务直接的安全调用。v01版本是基础学习,主分支基于目前线上功能拆出来的功能模块,实现开箱即用。

如果GITHUB访问较慢,可以访问码云上面的同步代码

https://gitee.com/7040210/SuperBoot

项目结构

super-boot
├── client-config  		-- 项目配置文件信息,业务模块通过配置中心读取自动配置服务
├── project_info  		--  项目相关信息包含数据字典、SQL语句、工具等
├── super-boot-utils    	--  项目公用工具模块
├── super-boot-base     	--  项目公用常量模块
├── super-boot-global   	--  项目公用全局模块
├── super-boot-demo     	--  项目示例
├── super-boot-registry     --  注册中心
├── super-boot-config       --  配置中心
├── super-boot-gateway      --  网关中心

数据流程图


客户端->>  网关:提交请求
网关->> 验证身份:身份验证
验证身份-->>客户端:验证未通过
验证身份->>Redis:写入用户信息
网关->> 业务处理:提交业务请求数据
Redis-->>业务处理:获取用户信息
业务处理->>客户端:返回结果数据


网关->>注册中心:注册服务
微服务->>注册中心:注册服务
配置中心->>注册中心:注册服务
配置中心->>网关:获取配置
配置中心->>微服务:获取配置

客户端->>网关:提交请求
Note right of 网关: 验证用户身份、生成用户Redis信息
网关->>微服务:获取用户信息
微服务->>网关:返回用户信息
网关->>客户端:返回结果数据

项目依赖

​ 此分布式项目要求配置人员有相关的从业经验,在启用之前要安装好MongoDB,Zookeeper、Kafka、Mysql、Redis等环境,然后修改项目内的具体配置信息。最后导入db.sql文件到数据库即可。

相关账号密码

注册中心及配置中心:

​ 账号:admin

​ 密码:superboot.org

MYSQL:

​ 用户:root

​ 密码:root

系统管理员:

​ 账号:admin

​ 密码:123456

组织管理员:

​ 账号:group

​ 密码:123456

项目启动顺序

1、启动注册中心(super-boot-registry)
2、启动配置中心(super-boot-config)
3、启动网关中心(super-boot-gateway)
4、启动业务模块(无先后顺序)

模块介绍

super-boot-utils

此模块项目共用工具类及通用方法常量等信息,项目打包的时候会打包为jar包放入项目lib中。

super-boot-base

此模块项目公用常量信息,项目打包的时候会打包为jar包放入项目lib中。

super-boot-global

此模块项目公共服务,提供读写分离、缓存、鉴权、多语等一系列功能,项目打包的时候会打包为jar包放入项目lib中。

super-boot-registry

此模块为注册中心,提供所有服务模块的注册、容错、负载均衡等功能。分布式环境中需要配置为高可用集群模式,要保证注册中心的稳定。
启动后可以访问 http://localhost:10000

super-boot-config

此模块为配置中心,在分布式环境中需要配置为高可用集群模式,增加安全及稳定性。
启动后可以访问 http://localhost:11000/config-info.yml

super-boot-gateway

此模块为API网关中心,提供统一的API调用接口及相关配置功能,支持限流、权限认证等功能。
启动后可以访问 http://localhost:9080/swagger-ui.html

super-boot-user

此模块为用户中心,提供用户注册、密码修改等相关功能。
启动后可以访问 http://localhost:8090/swagger-ui.html

Idea逆向生成数据库实体类

第一步配置 数据库

第一步配置 数据库

第二步配置 数据库连接信

第二步配置 数据库连接信息

第三步 配置hibernate,如果没有cfg.xml文件,点击ok后会自动生成

第三步  配置hibernate,如果没有cfg.xml文件,点击ok后会自动生成

第四步 选择hibernate配置文件生成实体

第四步 选择hibernate配置文件生成实体

第五步 设置完点击,选中要生成的实体的表

第五步 设置完点击,选中要生成的实体的表

项目API接口自动添加到数据库示例代码

生成效果图

注解类型

使用方式为在启动类添加如下代码即可


	
     @Autowired
    private Pub_DBUtils pub_DBUtils;

    /**
     * 扫描URL,如果数据库中不存在,则保存入数据库
     */
    //这个注解很重要,可以在每次启动的时候检查是否有URL更新,RequestMappingHandlerMapping只能在controller层用。这里我们放在主类中
    @PostConstruct
    public void detectHandlerMethods() {
        pub_DBUtils.addApiToDB();
    }

项目启用校验国际化功能

1、RESTful增加 @Validated 注解

2、实体类增加需要校验的注解类型即可

主要用到的注解类型

注解类型

Spring Data JPA 为此提供了一些表达条件查询的关键字,大致如下:

And --- 等价于 SQL 中的 and 关键字,比如 findByUsernameAndPassword(String user, Striang pwd)

Or --- 等价于 SQL 中的 or 关键字,比如 findByUsernameOrAddress(String user, String addr)

Between --- 等价于 SQL 中的 between 关键字,比如 findBySalaryBetween(int max, int min)

LessThan --- 等价于 SQL 中的 "<",比如 findBySalaryLessThan(int max)

GreaterThan --- 等价于 SQL 中的">",比如 findBySalaryGreaterThan(int min)

IsNull --- 等价于 SQL 中的 "is null",比如 findByUsernameIsNull()

IsNotNull --- 等价于 SQL 中的 "is not null",比如 findByUsernameIsNotNull()

NotNull --- 与 IsNotNull 等价

Like --- 等价于 SQL 中的 "like",比如 findByUsernameLike(String user)

NotLike --- 等价于 SQL 中的 "not like",比如 findByUsernameNotLike(String user)

OrderBy ---等价于 SQL 中的 "order by",比如 findByUsernameOrderBySalaryAsc(String user)

Not --- 等价于 SQL 中的 "! =",比如 findByUsernameNot(String user)

In --- 等价于 SQL 中的 "in",比如 findByUsernameIn(Collection userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数

NotIn --- 等价于 SQL 中的 "not in",比如 findByUsernameNotIn(Collection userList) ,方法的参数可以是 Collection 类型,也可以是数组或者不定长参数

其他QueryDSL、系统安全、读写分离请参考project-info下具体文档

赞助作者

请作者喝咖啡

MIT License Copyright (c) 2016 layui Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

随着技术日新月异,新技术新平台不断出现,对现如今的开发人员来说选择快速高效的框架进行项目开发,既能提高产出,又能节约时间。对目前节奏越来越快的互联网大环境来说,这是个必然的趋势,也是唯一的选择,针对目前的平台技术难度和口碑。本人结合多年工作经验开发一套敏捷框架,无需开发即可实现服务注册、服务发现、负载均衡、服务网关、配置中心、API管理、分布式事务、支撑平台、集成框架等功能,帮助大家更加专注实际业务而无需关心平台。 展开 收起
Java
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/weir/SuperBoot.git
git@gitee.com:weir/SuperBoot.git
weir
SuperBoot
SuperBoot
master

搜索帮助