原创 Spring的深入淺出--10.數據庫操作事務以及回滾事務的操作

聲明式事務 接上一個程序,導入jar包(支持spring對數據庫的控制)   創建TxConfig類  解釋:調用dataSource()獲取數據源,但是由於這是一個配置類,這初始化之後,在調用該配置類中的方法,都是去IOC容器中獲取

原创 Spring的深入淺出--14.註解開發實現servlet與springMvc和spring整合搭建web環境及其底層分析

創建新的項目,設置不需要web.xml  導入jar包 provided在打war包的時候就不會將該包導入進去(在tomcat裏面已經包含了)    spring官方文檔中配置      以上兩種方式都是一樣的,這是我們之前整合spr

原创 Spring的深入淺出--11.IOC容器底層封裝Bean的數據結構及IOC容器的底層創建流程及事件監聽發佈

在spring的IOC容器中,我們是採用什麼數據結構來封裝Bean的呢? 我們可以先假設: 因爲bean是不可重複的,所以應該採用不可重複的數據結構來存儲,這樣的話應該採用的是HashSet和hashmap,但是hashset存儲的只是對

原创 Spring的深入淺出--16.Servlet3.0異步處理以及springMvc採用簡單消息中間件進行異步處理

在Servlet3.0之前,Servlet採用Thread-Per-Request的方式處理請求。 即每一次Http請求都由某一個線程從頭到尾負責處理。 如果一個請求需要進行IO操作,比如訪問數據庫、調用第三方服務接口等,那麼其所對應的線

原创 Spring的深入淺出--15.springMvc自定義攔截器

在xml中的配置 1、@EnableWebMvc:開啓SpringMVC定製配置功能; 在AppConfig中添加@EnableWebMvc註解:通知開啓springMvc   繼承WebMvcConfigurerAdapter 創

原创 Spring的深入淺出--7.@Autowired、@Resource、@Inject的使用以及Aware接口的使用

自動裝配: 1、@Autowired的使用 創建MainConfigOfAutowired類 在service層中自動裝配    創建IOCTest_Autowired類  運行: 對比兩個一樣的類實現兩個bean 它的bean

原创 Spring的深入淺出--8.@Profile的分析使用實現動態數據源的切換及動態獲取數據源配置信息

@Profile:spring爲我們提供的可以根據當前環境,動態的激活和切換一系列組件的功能; 簡單來說就是:可以根據不同的開發環境、測試環境、生產環境,實現動態的切換不同的開發環境、測試環境、生產環境;   引入相關ar包  創建配

原创 Spring的深入淺出--12.再次深入分析IOC容器底層源碼實現流程

分析IOC容器最主要的還是通過觀察refresh()方法,在refresh是整個IOC容器的核心 刷新前的預處理工作      if裏面打印的是日誌    初始化屬性配置   進行屬性校驗   保存事件   獲取bean工廠      

原创 Spring的深入淺出--9.註解AOP實例及bean創建以及bean創建後執行流程的源碼分析

AOP(動態代理):指在程序運行期間動態的將某段代碼切入到指定方法指定位置進行運行的編程方法; 導入AOP模塊jar包 創建一個業務邏輯類MathCalculator,實現一個簡單的除法 要實現的業務:在業務邏輯運行的時候將日誌進行打印

原创 Spring的深入淺出--13.註解搭建web環境及通過servlet實現web各組件集成

在傳統的方式寫動態網站的時候需要將servlet配置到xml中,如今可以直接通過spring註解的方式來處理 創建HelloServlet類繼承HttpServlet 啓動服務器(這個是什麼我什麼配置文件都沒有,連web.xml都不存在

原创 算法的深入淺出--6.荷蘭國旗問題思想及代碼深入分析及其應用在經典快排的改進及隨機快排算法

問題(荷蘭國旗問題): 給定一個數組arr,和一個數num,請把小於num的數放在數組的左邊,等於num的數放在數組的中間,大於num的數放在數組的右邊。 要求額外空間複雜度O(1),時間複雜度O(N)  Coding: 當arr[cur

原创 Spring的深入淺出--6.三種方式實現bean的屬性賦值

接下來分析bean的屬性賦值 創建MainConfigOfPropertyValues 創建測試類    打印person的bean 運行:    在傳統的方式中我們在xml中配置    使用前面兩種賦值方式 第三種${}賦值方式

原创 Spring的深入淺出--1.本系列總體分析及傳統方式的xml配置和註解配置的對比及@ComponentScan的初步講解

首先聲明該系列不適合零基本的程序員瀏覽!   總體系列流程總體分析   Spring註解驅動開發: 容器:      AnnotationConfigapplicationContext      組件添加      組件賦值      

原创 Spring的深入淺出--4.Spring中@Lazy單例模式中的懶漢式和餓漢式的區別以及@Conditional條件選擇bean

Spring單例模式中的懶漢模式和餓漢模式的區別 懶加載(單例模式的懶漢模式): 單例實例bean:默認在容器啓動的時候創建對象; 懶加載:容器啓動不創建對象。第一次使用(獲取)Bean創建對象,並初始化。 接上一個程序: 在默認情況下啓

原创 算法的深入淺出--5.遞歸底層思想實例及圖解剖析以及master公式的詳細講解以及歸併排序思想與實例深入講解以及歸併解決小和問題

時間複雜度O(N^2):太簡單沒啥要解釋的了 額外空間複雜度O(1):在完成每個目標的過程中,在目標完成過程中增加的變量和對象佔用的空間 遞歸的深入剖析 通過一個簡單實例來分析:通過遞歸求一個數組中的最大值 接下來我們分析遞歸的底層是怎