您好,登錄后才能下訂單哦!
Spring的優點?
1)spring屬于低侵入式設計,代碼的污染極低;
2)spring的DI機制將對象之間的依賴關系交由框架處理,減低組件的耦合性;
3)Spring提供了AOP技術,支持將一些通用任務,如安全、事務、日志、權限等進行集中式管理,從而提供更好的復用;
4)spring對于主流的應用框架提供了集成支持。
IOC是什么?
IOC(Inversion Of Controll,控制反轉)是一種設計思想,將原本在程序中手動創建對象的控制權,交由給Spring框架來管理。IOC容器是Spring用來實現IOC的載體,IOC容器實際上就是一個Map(key、value),Map中存放的是各種對象。
這樣可以很大程度上簡化應用的開發,把應用從復雜的依賴關系中解放出來。IOC容器就像是一個工廠,當需要創建一個對象,只需要配置好配置文件/注解即可,不用考慮對象是如何被創建出來的,大大增加了項目的可維護性且降低了開發難度。
AOP是什么?
AOP(Aspect-Oriented Programming,面向切面編程)能夠將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任(例如事務處理、日志管理、權限控制等)封裝起來,便于減少系統的重復代碼,降低模塊間的耦合度,并有利于未來的可擴展性和可維護性。使用AOP之后我們可以把一些通用功能抽象出來,在需要用到的地方直接使用即可,這樣可以大大簡化代碼量,提高了系統的擴展性。
Spring AOP是基于動態代理的,如果要代理的對象實現了某個接口,那么Spring AOP就會使用JDK動態代理去創建代理對象;而對于沒有實現接口的對象,就無法使用JDK動態代理,轉而使用CGlib動態代理生成一個被代理對象的子類來作為代理。
BeanFactory和ApplicationContext有什么區別?
1)BeanFactory是Spring里面最底層的接口,包含了各種Bean的定義,讀取bean配置文檔,管理bean的加載、實例化,控制bean的生命周期,維護bean之間的依賴關系。ApplicationContext接口作為BeanFactory的派生,除了提供BeanFactory所具有的功能外,還提供了更完整的框架功能。
2)BeanFactroy采用的是延遲加載形式來注入Bean的,即只有在使用到某個Bean時(調用getBean()),才對該Bean進行加載實例化。ApplicationContext是在容器啟動時,一次性創建了所有的Bean。這樣在容器啟動時,我們就可以發現Spring中存在的配置錯誤,這樣有利于檢查所依賴屬性是否注。
3)BeanFactory通常以編程的方式被創建,ApplicationContext還能以聲明的方式創建,如使用ContextLoader。
4)BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用,但兩者之間的區別是:BeanFactory需要手動注冊,而ApplicationContext則是自動注冊。
Spring AOP/AspectJ AOP的區別?
1)Spring AOP屬于運行時增強,而AspectJ是編譯時增強;
2)Spring AOP基于代理(Proxying),而AspectJ基于字節碼操作(Bytecode Manipulation);
3)AspectJ相比于Spring AOP功能更加強大,但是Spring AOP相對來說更簡單。如果切面比較少,那么兩者性能差異不大。但是,當切面太多的話,最好選擇AspectJ,它比SpringAOP快很多。
Spring支持幾種bean的作用域?
1)singleton:默認,每個容器中只有一個bean的實例,單例的模式由BeanFactory自身來維護。
2)prototype:為每一個bean請求提供一個實例。
3)request:為每一個網絡請求創建一個實例,在請求完成以后,bean會失效并被垃圾回收器回收。
4)session:與request范圍類似,確保每個session中有一個bean的實例,在session過期后,bean會隨之失效。
5)global-session:全局作用域,global-session和Portlet應用相關。當你的應用部署在Portlet容器中工作時,它包含很多portlet。如果你想要聲明讓所有的portlet共用全局的存儲變量的話,那么這全局變量需要存儲在global-session中。全局作用域與Servlet中的session作用域效果相同。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。