91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring常見面試題和解題思路

發布時間:2020-05-29 20:43:49 來源:億速云 閱讀:235 作者:鴿子 欄目:編程語言

  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作用域效果相同。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嘉义市| 工布江达县| 房产| 旺苍县| 洛阳市| 芜湖市| 门头沟区| 张掖市| 怀安县| 惠水县| 屏南县| 新营市| 漳浦县| 乌拉特前旗| 伽师县| 京山县| 体育| 辽宁省| 田林县| 夏河县| 江都市| 通城县| 彭山县| 潼关县| 固原市| 连南| 墨竹工卡县| 阿克苏市| 汉阴县| 庆云县| 蚌埠市| 安康市| 邹平县| 银川市| 临清市| 略阳县| 万载县| 曲周县| 枣阳市| 大城县| 东海县|