Spring框架體系是重復造輪子嗎?
謝謝邀請!
我的觀點Spring框架體系不是重復要輪子,下面是我們常用的開發框架:
①ssh (spring/struts/hibernate)
②ssm(spring/springmvc/mybatis)
③springboot (基于spring)
④ dubbo
⑤ springcloud
⑥其他二次封裝的框架
上面我們開發使用的框架都離不開spring,一句話:只要你還在用java開發,你就離不開spring。
Spring為什么那么重要?Spring最主要的兩大模塊是Ioc和aop,Ioc就是依賴注入,以前如果我們在一個類中引用另外一個類,那么直接是new的,而現在有了spring,所有bean的生命周期和相互的依賴,都是由spring來管理的。
AOP:面向切面編程,即把我們平時業務中的公共部分提取出來寫在切面里,然后在系統啟動時,在底層使用動態代理,給需要切入的類加上公共的業務。比如我們的性能監控,事務的處理都是用的spring aop。
而且spring得可擴展性非常強
Spring的強擴展性體現在在哪兒?看過源碼的都知道,spring提供了非常多的Bean的后置處理器,不僅是這些,spring還在加載的各個階段預留了空方法,就給用戶去自定義實現。比如bean注冊少,注冊后,實例化前,實例化后,最后容器初始化要了還有預留的接口,如果我們需要擴展只要實現一個接口即可。
其他框架是怎么融合spring的呢?① 我們先說spring aop 在哪個階段對bean進行代理的
Aop在getBean方法里,在bean實例化前會初始化好切面和增強器。
在bean實例化后,使用spring預留的接口,實現對bean的代理。
② springboot集成tomcat是怎么啟動的?
實在spring中的onRefresh()的空方法實現的,這時bean還沒有初始化。
③ ureka注冊中心在什么時候啟動的?
在spring容器初始化完成后,有一個預留接口,ureka實現了這個接口進行啟動。
上面例子還有很多,就不一一說了;