成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

精華:關于Spring的15點總結

新聞 前端
Spring是一個 full-stack 框架,提供了從表現層到業務層再到持久層的一套完整的解決方案。

 1.Spring 中 AOP 的應用場景、Aop 原理、好處?

答:AOP 用來封裝橫切關注點,具體可以在下面的場景中使用: Authentication 權限、Caching緩存、Contextpassing內容傳遞、Errorhandling錯誤處理 Lazy loading 懶加載、Debugging 調試、logging,tracing,profilingandmonitoring 記錄跟蹤優化 校準、Performanceoptimization 性能優化、Persistence持久化、Resourcepooling 資源池、 Synchronization 同步、Transactions事務

原理:AOP 是面向切面編程,是通過代理的方式為程序添加統一功能,集中解決一些公 共問題。

好處:1.各個步驟之間的良好隔離性      2.源代碼無關性

2.Spring 中 IOC 的作用與原理?對象創建的過程。

答:當某個角色需要另外一個角色協助的時候,在傳統的程序設計過程中,通常由調用 者來創建被調用者的實例。但在 spring 中創建被調用者的工作不再由調用者來完成,因此稱 為控制反轉。創建被調用者的工作由 spring 來完成,然后注入調用者。

IOC 本質上是一個容器,已 MAP 對 IOC 簡單舉例,服務器加載配置文件,由 xml 文檔 解析工具讀取 bean 的 ID,獲取 class,使用反射創建對象,以 K-V 的形式存入 MAP,K 是 ID, V 是反射創建的對象。獲取對象可以調用 context.getBean(K)的方式。

3.介紹 spring 框架

它是一個 full-stack 框架,提供了從表現層到業務層再到持久層的一套完整的解決方案。我 們在項目中可以只使用 spring 一個框架,它就可以提供表現層的 mvc 框架,持久層的 Dao 框架。它的兩大核心 IoC 和 AOP 更是為我們程序解耦和代碼簡潔易維護提供了支持。

4.Spring 常見創建對象的注解?

答:@Component@Controller@Service@Repository

5.Spring 中用到的設計模式

答:簡單工廠、工廠方法、單例模式、適配器、包裝器、代理、觀察者、策略、模板方法 詳細介紹自己查了。

6.Spring 的優點?

(1)降低了組件之間的耦合性,實現了軟件各層之間的解耦

(2)可以使用容易提供的眾多服務,如事務管理,消息服務等

(3)容器提供單例模式支持

(4)容器提供了 AOP 技術,利用它很容易實現如權限攔截,運行期監控等功能

(5)容器提供了眾多的輔助類,能加快應用的開發

(6)spring 對于主流的應用框架提供了集成支持,如 hibernate,JPA,Struts 等

(7)spring 屬于低侵入式設計,代碼的污染極低

(8)獨立于各種應用服務器

(9)spring 的 DI 機制降低了業務對象替換的復雜性

(10)Spring 的高度開放性,并不強制應用完全依賴于 Spring,開發者可以自由選擇 spring 的部分或全部

7.SpringBean 的作用域之間有什么區別?

Spring 容器中的 bean 可以分為 5 個范圍。所有范圍的名稱都是自說明的,但是為了避 免混淆,還是讓我們來解釋一下:

singleton:這種 bean 范圍是默認的,這種范圍確保不管接受到多少個請求,每個容器 中只有一個 bean 的實例,單例的模式由 beanfactory 自身來維護。

prototype:原形范圍與單例范圍相反,為每一個 bean 請求提供一個實例。黑馬程序員

request:在請求 bean 范圍內會每一個來自客戶端的網絡請求創建一個實例,在請求完成以 后,bean 會失效并被垃圾回收器回收。

Session:與請求范圍類似,確保每個 session 中有一個 bean 的實例,在 session 過期后, bean 會隨之失效。

global-session:global-session 和 Portlet 應用相關。當你的應用部署在 Portlet 容器中工 作時,它包含很多 portlet。如果你想要聲明讓所有的 portlet 共用全局的存儲變量的話,那 么這全局變量需要存儲在 global-session 中。全局作用域與 Servlet 中的 session 作用域效果相同。

8.Spring 管理事務有幾種方式?

答:有兩種方式:

(1)編程式事務,在代碼中硬編碼。(不推薦使用)

(2)聲明式事務,在配置文件中配置(推薦使用)聲明式事務又分為兩種:

a、基于 XML 的聲明式事務

b、基于注解的聲明式事務

9.spring 中自動裝配的方式有哪些?

(1)No:即不啟用自動裝配。

(2)byName:通過屬性的名字的方式查找 JavaBean 依賴的對象并為其注入。比如說類 Computer 有個屬性 printer,指定其 autowire 屬性為 byName 后,Spring IoC 容器會在配置文 件中查找 id/name 屬性為 printer 的 bean,然后使用 Seter 方法為其注入。

(3)byType:通過屬性的類型查找 JavaBean 依賴的對象并為其注入。比如類 Computer 有個屬性 printer,類型為 Printer,那么,指定其 autowire 屬性為 byType 后,SpringIoC 容 器會查找 Class 屬性為 Printer 的 bean,使用 Seter 方法為其注入。

(4)constructor:通 byType 一樣,也是通過類型查找依賴對象。與 byType 的區別在于 它不是使用 Seter 方法注入,而是使用構造子注入。

(5)autodetect:在 byType 和 constructor 之間自動的選擇注入方式。

(6)default:由上級標簽<beans>的 default-autowire 屬性確定。

10.spring 中的核心類有那些,各有什么作用?

BeanFactory:產生一個新的實例,可以實現單例模式

BeanWrapper:提供統一的 get 及 set 方法

ApplicationContext:提供框架的實現,包括 BeanFactory 的所有功能

11.Bean 的調用方式有哪些?

答:有三種方式可以得到 Bean 并進行調用:

(1)使用 BeanWrapper

HelloWorld hw=new HelloWorld();

BeanWrapper bw=new BeanWrapperImpl(hw);

bw.setPropertyvalue(”msg”,”HelloWorld”);

System.out.println(bw.getPropertyCalue(”msg”));

(2)使用 BeanFactory

InputStream is=new FileInputStream(”config.xml”);

XmlBeanFactory factory=new XmlBeanFactory(is);

HelloWorld hw=(HelloWorld) factory.getBean(”HelloWorld”);

System.out.println(hw.getMsg());

(3)使用 ApplicationConttext

ApplicationContext actx=new FleSystemXmlApplicationContext(”config.xml”);

HelloWorld hw=(HelloWorld) actx.getBean(”HelloWorld”);

System.out.println(hw.getMsg());

12.什么是 IOC,什么又是 DI,他們有什么區別?

答:依賴注入 DI 是一個程序設計模式和架構模型,一些時候也稱作控制反轉,盡管在 技術上來講,依賴注入是一個 IOC 的特殊實現,依賴注入是指一個對象應用另外一個對象來 提供一個特殊的能力,例如:把一個數據庫連接已參數的形式傳到一個對象的結構方法里 面而不是在那個對象內部自行創建一個連接。

控制反轉和依賴注入的基本思想就是把類的依 賴從類內部轉化到外部以減少依賴 應用控制反轉,對象在被創建的時候,由一個調控系統內所有對象的外界實體,將其所 依賴的對象的引用,傳遞給它。也可以說,依賴被注入到對象中。所以,控制反轉是,關 于一個對象如何獲取他所依賴的對象的引用,這個責任的反轉。

13.spring 有兩種代理方式:

(1)若目標對象實現了若干接口,spring 使用 JDK 的 java.lang.reflect.Proxy 類代理。

優點:因為有接口,所以使系統更加松耦合

缺點:為每一個目標類創建接口

(2)若目標對象沒有實現任何接口,spring 使用 CGLIB 庫生成目標對象的子類。

優點:因為代理類與目標類是繼承關系,所以不需要有接口的存在。

缺點:因為沒有使用接口,所以系統的耦合性沒有使用 JDK 的動態代理好。

14.springMVC 的流程?

(1)用戶發送請求至前端控制器 DispatcherServlet

(2)DispatcherServlet 收到請求調用 HandlerMapping 處理器映射器。

(3)處理器映射器根據請求 url 找到具體的處理器,生成處理器對象及處理器攔截器(如果 有則生成)一并返回給 DispatcherServlet。

(4)DispatcherServlet 通過 HandlerAdapter 處理器適配器調用處理器

(5)執行處理器(Controller,也叫后端控制器)。

(6)Controller 執行完成返回 ModelAndView

(7)HandlerAdapter 將 controller 執行結果 ModelAndView 返回給 DispatcherServlet

(8)DispatcherServlet 將 ModelAndView 傳給 ViewReslover 視圖解析器

(9)ViewReslover 解析后返回具體 View

(10)DispatcherServlet 對 View 進行渲染視圖(即將模型數據填充至視圖中)。

(11)DispatcherServlet 響應用戶

15.Springmvc 的優點

(1)它是基于組件技術的.全部的應用對象,無論控制器和視圖,還是業務對象之類的都是java 組件.并且和 Spring 提供的其他基礎結構緊密集成.

(2)不依賴于 ServletAPI(目標雖是如此,但是在實現的時候確實是依賴于 Servlet 的)

(3)可以任意使用各種視圖技術,而不僅僅局限于 JSP4.支持各種請求資源的映射策略5.它應是易于擴展的

責任編輯:張燕妮 來源: 頭條科技
相關推薦

2012-03-27 08:49:19

Json

2020-12-10 16:20:30

Vue前端架構

2009-08-06 17:42:32

C#知識點

2015-06-17 10:24:47

Android面試

2014-06-10 14:19:52

iOSUIApplicati總結

2014-07-03 16:35:38

WebApp開發技巧總結

2014-06-10 13:44:58

iOSUIImage知識點

2024-12-30 07:40:58

Python編程循環結構

2011-06-23 11:36:27

網站排名

2024-02-01 08:28:28

2010-08-05 13:58:33

NFS故障

2009-11-11 14:34:14

VB.NET動態連接庫

2010-07-02 13:12:12

Meego開發

2012-06-20 09:58:26

程序員

2013-05-30 18:40:02

2018-07-12 11:44:38

數據庫MySQL變量分類

2015-09-09 10:20:00

php緩存技術

2017-04-26 15:30:31

PHP錯誤機制

2020-09-21 06:08:00

惡意軟件網絡安全網絡攻擊

2022-04-02 09:56:44

pipPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲第一区久久 | 日韩在线精品视频 | 久久久久久久久久久丰满 | 久久最新 | 小川阿佐美pgd-606在线 | 亚洲精品久久久蜜桃 | 91大神在线资源观看无广告 | 欧日韩在线观看 | 在线观看中文视频 | 精品国产精品三级精品av网址 | 国产欧美在线观看 | 一区在线播放 | 亚洲婷婷一区 | 激情久久av一区av二区av三区 | 欧美黄色录像 | 日韩无| 综合久久一区 | 精品久久久久香蕉网 | 久久成人国产精品 | 日韩视频一区二区三区 | 亚洲一区中文 | 日韩www| 欧美日韩高清在线观看 | 毛片av免费在线观看 | 国产一级电影在线观看 | 国产高清在线精品一区二区三区 | 久热国产在线 | 日日干天天干 | 日韩午夜在线观看 | 欧美成年人网站 | 日韩精品一区二区三区中文在线 | 国产成人精品免费视频大全最热 | a级大片免费观看 | 国产精品视频综合 | 久久精品这里精品 | 一区中文字幕 | 成人美女免费网站视频 | 国产成人午夜精品影院游乐网 | 99热国产在线播放 | 日韩欧美网 | 欧美精品v国产精品v日韩精品 |