原创 spring cloud實戰(四)spring cloud gateway

需求 我們使用spring cloud gateway搭建一個最簡單的微服務通用訪問網關(General Purpose Server-side API gateway)。 需求整理如下: 所有資源服務通過consul agen

原创 互聯網安全認證的問題、場景及方案

在傳統web開發B-S模型中,用戶登陸後創建一個sessionId返回給Browser(User-Agent);在Browser每次請求後端Server時,根據sessionId獲取用戶登陸時的客戶信息,從而實現安全認證(Auth

原创 SpringCloud源碼研讀(四):ribbon

Ribbon運行時Bean做了命名空間隔離,給每個服務方定義一個獨立的bean上下文。這樣做是爲了支持對某一個服務單獨配置負載。比如負載算法,是否重試等,也可以爲每一個服務實例化一個服務發現邏輯,可以最大化地將自由交給實現方。 核

原创 SpringCloud源碼研讀(三):consul

自動配置 在spring-cloud-consul-discovery.jar!/META-INF/spring.factories中,有如下配置: org.springframework.boot.autoconfigure.E

原创 spring cloud實戰(三)consul

Consul 介紹 Consul 是 HashiCorp 公司推出的開源工具,用於實現分佈式系統的服務發現與配置。與其它分佈式服務註冊與發現的方案,Consul 的方案更“一站式”,內置了服務註冊與發現框 架、分佈一致性協議實現、

原创 @ConditionalOnClass(AObject.class)爲什麼不報錯

問題說明 條件加載是springboot自動配置的剛需,其中有兩個條件@ConditionalOnClass和@ConditionalOnMissingClass非常特別,它是基於class類是否存在判斷的。場景的使用場景如下:

原创 SpringBoot源碼研讀(二):openFeign

Feign的工作原理 openFeign爲了實現高度的靈活和舒適的使用體驗,使用了大量的設計模式。簡直是設計模式學習的最佳範本。 初始化過程 @EnableFeignClients註解將類FeignClientsRegistra

原创 SpringBoot源碼研讀(一):啓動與Bean加載

SpringBoot啓動核心邏輯 通常最簡單的springboot項目的總入口是如下寫法。類上加註解@SpringBootApplication,然後直接調用靜態方法SpringApplication#run(Class<?> p

原创 spring cloud實戰(一)spring cloud config

項目模板 客戶端使用 spring boot項目目錄結構模板 ├ {projectRoot} ├ pom.xml ├ test │ └... └ src ├ main ├ java │ └ com...

原创 深入解析Jolt

Jolt概覽 目前json數據已經逐步取代xml成爲主流的數據交換和存儲格式。在數據交互過程中經常遇到數據格式不一致的問題,在xml時代有XSTL(Extensible Stylesheet Language Transforma

原创 Maven必知必會

maven是什麼? Maven是基於項目對象模型(POM project object model),可以通過一小段描述信息(配置)來管理項目的構建,報告和文檔的軟件項目管理工具[百度百科] POM( Project Object M

原创 springscurity實戰

springscurity爲我們提供了強大的內置功能,但在實際應用場景中依然需要做一定的定製開發和配置。本文嘗試通過實戰一起了解springscurity的內部世界。 需求場景 混合式開發APP(Hybrid APP)是目前移動互聯網

原创 springsecurity核心要義

配置核心要素 WebSecurityConfigurerAdapter spring security爲web應用提供了一個WebSecurityConfigurerAdapter適配器,應用裏spring security相關的配置

原创 互聯網系統應用安全控制

在 Web 應用開發中,安全一直是非常重要的一個方面。面向互聯網公網的接口服務,如果不加防護會導致數據泄露和商業風險。應用的安全性包括用戶認證(Authentication)和用戶授權(Authorization)兩個部分。用戶認證指

原创 響應式編程從理論到實踐

堵塞與非堵塞原理 傳統硬件的堵塞(IO)如下,從內存中讀取數據,然後寫到磁盤,而CPU一直等到磁盤寫完成,磁盤的寫操作是慢的,這段時間CPU被堵塞不能發揮效率。 使用非堵塞(NIO)的DMA如下圖:CPU只是發出寫操作這樣的指令,做