原创 SpringBoot 讀寫分離實現(AbstractRoutingDataSource)

讀寫分離一直都是項目的標配,之前項目的做法非常簡單,直接配置兩個數據源,一個只讀,一個只寫,只讀的放到xxx.read,只寫的放到xxx.write包下。Service層調用的時候根據操作選擇對應的數據源。主要配置: <bean id="

原创 Docker nginx安裝與文件掛載

在高併發訪問的時候,一臺tomcat完成是撐不住的,這時就需要做個tomcat集羣了,使用nginx進行LB處理。那麼先安裝好nginx進行測試。 在win10中,下載好nginx,並進入解壓好的目錄,執行 start nginx即可以

原创 SpringBoot 整合SpringMvc 原理探究(DispatchServlet添加流程)

通過SpringBoot整合各個框架是越來越方便了,整合SpringMVC只需要添加對應的starer依賴即可。 <dependency> <groupId>org.springframework.boot</groupId>

原创 一次線上JVM調優實踐,FullGC40次/天到10天一次的優化過程

通過這一個多月的努力,將FullGC從40次/天優化到近10天才觸發一次,而且YoungGC的時間也減少了一半以上,這麼大的優化,有必要記錄一下中間的調優過程。 對於JVM垃圾回收,之前一直都是處於理論階段,就知道新生代,老年代的晉升關係

原创 Eureka 優雅下線,上線

項目中使用SpringCloud時,Eureka作爲註冊中心基本是標配了,作爲AP的一個實現策略,基本能夠滿足項目的需要。在微服務的世界中,每個模塊發佈是常有的事,那麼如何安全地發佈呢? 直接關閉服務 這種方式簡單粗暴,直接造成的影響就是

原创 SpringBoot 爲MapperScan添加動態掃描(佔位符)功能

SpringBootLean 是對springboot學習與研究項目,是根據實際項目的形式對進行配置與處理,歡迎star與fork。 [oschina 地址] http://git.oschina.net/cmlbeliever/Sp

原创 Spring Async不得不知的用法

在Spring中使用需要對方法進行異步操作的時候,只需要在對應的方法上加上 @Async 註解就好了,如果想要獲取返回值或者進行監聽呢? 首先,整合異步框架需要在SpringBoot入口類中添加@EnableAsync註解,表明開啓

原创 SpringCloud 詳解配置刷新的原理

首先先介紹下實現後的效果: 1、在需要動態配置屬性的類上添加註解@RefreshScope表示此類Scope爲refresh類型的 2、啓動工程,修改config-server對應的配置文件,這裏修改的是system.order.se

原创 SpringMvc 你該知道如何在HandlerExceptionResolver中獲取Model

在項目開發中,我們通常通過參數的形式注入Model對象,如: @RequestMapping("/demo") public String demo(Model model) { model.addAttr

原创 Spring-Data-Jpa projection用法

進行數據查詢時,有時候並不需要把全部字段查詢出來,只要查詢部分的字段即可。那麼就需要使用到Sping-Data-Jpa中的projection功能了。 前提:有用戶表和訂單表,用戶與訂單的關係是1對多關係。訂單表的模型bean: @Ent

原创 SpringCloud2.0.1--Ribbon 重試監聽

在SpringCloud中,通常使用的是客服端發現作爲負載均衡。SpringCloud全家桶中提供了Ribbon作爲客戶端負載的優秀框架。 服務器之間的調用直接使用Feign進行調用。Feign默認使用了Ribbon作爲負載的實現。

原创 SpringMvc在SpringBoot環境和Web環境中上下文的關係

之前有人在我的項目中提出issue,諮詢在SpringBoot中的bean是不是由誰來管理的問題(SpringMvc還是Spring)來管理(https://github.com/cmlbeliever/SpringBootLearnin

原创 關於頁面查詢條件保持的思考(一)

在項目中,查詢條件保持是經常使用到的,特別是管理後臺。對於前臺頁面來說,通常爲了訪問的方便會使用get的方式進行表單提交,這樣進行頁面分享或者發送給好友時可以直接打開對於的頁面。但是對於管理後臺來說,地址欄上的一大串url參數是不允許的,

原创 SpringCloud 項目基礎搭建與使用

微服務已經漸漸火起來了,現在到哪裏都能聽到這個詞。在微服務方面SpringCloud算是很成熟的開源項目了。雖然項目中還沒具體使用到,但是作爲個人的學習拓展還是可以深入的學習的。 我眼中的微服務概念:將系統拆分成獨立的多個模塊,通過網

原创 SpringMVC中一個超好用的參數緩存框架

在上篇博客(http://blog.csdn.net/cml_blog/article/details/78928693)已經分析了頁面參數保存的方法以及各種方法。但是是基於AOP的實現方式,既然使用SpringMVC,那麼就應該使用框架