最近閱讀了一下spring的核心**,徹底弄懂了ioc和aop的實現原理,下面簡單的用自己的話總結歸納一下;
web專案啟動時候,無論是使用tomcat 還是spring boot內嵌tomcat啟動,首先都會呼叫乙個servlet,spring使用的servlet是dispatcherservlet
2.初始化完成之後專案就算起來了,之後就可以進行web訪問了,一次web的訪問流程:首先會根據http訪問型別來到dispatcherservlet的相應的get、post。。。方法中,之後根據訪問路徑來拿取相應的實體和實體下的方法,並根據之前維護的形參註解關係在url中或者body中拿取到相應的引數集合,之後通過反射的形式呼叫相應的方法並返回相應結果;其實在這一次的呼叫的外層還會包裹著其他東西,就是我們要說的aop了(aop所說的切面不僅僅是spring中維護的被@aspect註解實體,其實servlet容器維護的過濾器和spring容器維護的***也都是切面程式設計的思想體現),他會依次先進去過濾器->***->切面->呼叫方法->切面->***->過濾器 之後返給servlet,最後返回給呼叫端;
其實這僅僅是乙個簡單的描述過程,其中還包含了其他的很多東西比如你引入了持久化層的模組,在容器初始化的時候就會去建立相關的實體,這些實體可以使用連線池,可以是工廠類等,而且他們的屬性都是可配置的。
等等等。。。。。。。。。。。。。。
簡述Kafka核心原理
linux中kafka的常用命令 kafka是一種高吞吐量的分布式發布 訂閱 訊息系統,專為超高吞吐量的實時日誌採集 實時資料同步 實時資料計算等場景來設計。kafka是訊息中介軟體的一種,目前主流的訊息中介軟體有apache的activemq,linkedln開發的kafka 現已捐贈給apach...
簡述Spring的詳細工作原理
另spring與spring mvc的區別 spring mvc就是乙個mvc框架,個人覺得spring mvc annotation式的開發比struts2方便,可以直接代替上面的struts 當然struts的做為乙個非常成熟的mvc,功能上感覺還是比spring強一點,不過spring mvc...
Spring註解驅動開發 AOP原理簡述
要有aop功能必須要加 enableaspectjautoproxy註解 enableaspectjautoproxy註解會給容器中新增乙個後置處理器,這個後置處理器會在bean的建立前後被呼叫,bean建立完成後,會檢查這個bean是否需要增強,如果需要增強,就會通過動態 技術生成乙個 物件,物件...