javascript
springcloud gateway 鉴权_SuperBoot框架是基于SpringCloud、SpringBoot敏捷开发框架
項目介紹
SuperBoot框架是基于SpringCloud、SpringBoot敏捷開發框架,框架開發初衷是為了方便快速開發項目,無需關心基礎代碼的編寫,可以更專注于業務本身。框架實現基于JWT Token授權驗證,實現單點登錄SSO,服務鑒權,實現Redis數據緩存,在保證數據一致性的前提下提高接口響應速度。無縫集成MongoDB數據庫,提供對非結構型數據存儲,解決關系型數據庫瓶頸問題。集成swagger框架,實現自動API測試及調試功能,解決程序員最反感的編寫技術文檔的問題。數據源基于Druid,提供更高性能及SQL監控??蚣芴峁┙y一異常處理,統一響應結果,增加對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-registry -- 注冊中心├── super-boot-config -- 配置中心├── super-boot-gateway -- 網關中心├── super-boot-user -- 用戶中心數據流程圖
客戶端->> 網關:提交請求網關->> 驗證身份:身份驗證驗證身份-->>客戶端:驗證未通過驗證身份->>Redis:寫入用戶信息網關->> 業務處理:提交業務請求數據Redis-->>業務處理:獲取用戶信息業務處理->>客戶端:返回結果數據網關->>注冊中心:注冊服務微服務->>注冊中心:注冊服務配置中心->>注冊中心:注冊服務配置中心->>網關:獲取配置配置中心->>微服務:獲取配置客戶端->>網關:提交請求Note right of 網關: 驗證用戶身份、生成用戶Redis信息網關->>微服務:獲取用戶信息微服務->>網關:返回用戶信息網關->>客戶端:返回結果數據項目依賴
此分布式項目要求配置人員有相關的從業經驗,在啟用之前要安裝好MongoDB,Zookeeper、Kafka、Mysql、Redis等環境,然后修改項目內的具體配置信息。最后導入db.sql文件到數據庫即可。相關賬號密碼
注冊中心及配置中心:
賬號:admin密碼:superboot.orgMYSQL:
用戶:root密碼:root系統管理員:
賬號:admin密碼:123456組織管理員:
賬號:group密碼:123456項目啟動順序
1、啟動注冊中心(super-boot-registry)
2、啟動配置中心(super-boot-config)
3、啟動網關中心(super-boot-gateway)
4、啟動業務模塊(無先后順序,項目內包含user為用戶中心)
模塊介紹
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配置文件生成實體
第五步 設置完點擊,選中要生成的實體的表
項目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 中的 "
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 類型,也可以是數組或者不定長參數
總結
以上是生活随笔為你收集整理的springcloud gateway 鉴权_SuperBoot框架是基于SpringCloud、SpringBoot敏捷开发框架的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows比linux差在哪,怎么让
- 下一篇: Linux open函数使用方法记录