大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 一文讀懂Spring是什么

一文讀懂Spring是什么

更新時(shí)間:2022-05-10 10:47:16 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1392次

1.spring是什么?

Spring是一個(gè)輕量級(jí)的IoC/DI和AOP容器的開(kāi)源框架,大家如果感興趣,可以看看Spring AOP簡(jiǎn)介來(lái)了解一下。

2.spring的優(yōu)點(diǎn)

Spring 能幫我們低侵入/低耦合地根據(jù)配置文件創(chuàng)建及組裝對(duì)象之間的依賴(lài)關(guān)系 //解耦

Spring 面向切面編程能幫助我們無(wú)耦合的實(shí)現(xiàn)日志記錄,性能統(tǒng)計(jì),安全控制等 //提高代碼重用性

Spring 能非常簡(jiǎn)單的且強(qiáng)大的聲明式事務(wù)管理 //使用xml或注解的方法,底層用到動(dòng)態(tài)代理

Spring 提供了與第三方數(shù)據(jù)訪(fǎng)問(wèn)框架(如JPA)無(wú)縫集成,且自己也提供了一套JDBC模板來(lái)方便數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)

Spring 提供與第三方Web框架無(wú)縫集成,且自己也提供了一套 SpringMVC 框架,來(lái)方便 Web 層搭建

3.Spring Ioc/DI

Ioc:

(1)控制反轉(zhuǎn),是一種設(shè)計(jì)思想,就是原本在程序中需要手動(dòng)創(chuàng)建對(duì)象的權(quán)利,交給spring框架管理

(2)Ioc容器是實(shí)現(xiàn)Ioc的載體,Ioc容器實(shí)際上就是個(gè)Map(key,value),map中存放各種對(duì)象

(3)Ioc容器就像一個(gè)工廠(chǎng)一樣,當(dāng)我們需要?jiǎng)?chuàng)建一個(gè)對(duì)象時(shí),只需要配置好配置文件或貼注解即可,

完全不用考慮對(duì)象時(shí)如何被創(chuàng)建出來(lái)的

(4)將對(duì)象相互依賴(lài)的關(guān)系交給ioc容器管理,這樣可以很大程度簡(jiǎn)化應(yīng)用開(kāi)發(fā)

(5)使用Ioc的話(huà),我們只需要配置好,在需要的地方引用就好,這大大的增加了項(xiàng)目的可維護(hù)性且降低了開(kāi)發(fā)難度

DI:

(1)指 Spring 創(chuàng)建對(duì)象的過(guò)程中,將對(duì)象依賴(lài)屬性通過(guò)配置設(shè)值給該對(duì)象

(2)就是給對(duì)象的屬性設(shè)置屬性值

//Ioc創(chuàng)建對(duì)象,Di給屬性設(shè)置值

4.Spring AOP

Aop:面向切面編程

(1)能夠?qū)⒛切┡c業(yè)務(wù)無(wú)關(guān),卻為業(yè)務(wù)模塊所共同調(diào)用的邏輯和責(zé)任封裝起來(lái),

便于減少重復(fù)代碼,降低模塊間的耦合度,并有利于未來(lái)的可拓展性和可維護(hù)性

(2)Spring Aop就是基于動(dòng)態(tài)代理的,當(dāng)要代理的對(duì)象實(shí)現(xiàn)了某個(gè)接口,就會(huì)使用Jdk動(dòng)態(tài)代理

(3)如果沒(méi)有某個(gè)接口,就是使用cglib生成一個(gè)被代理對(duì)象的子類(lèi)作為代理

//使用aop之后我們可以把一些通用的功能抽象出來(lái),在需要的時(shí)候自己使用即可,這樣大大的簡(jiǎn)化了代碼量

//常用的aop的有 事務(wù)處理 日志管理 權(quán)限控制

5.Spring 中的 bean 的作用域

//作用域:在 Spring 容器中是指其創(chuàng)建的 bean 對(duì)象相對(duì)于其他 bean 對(duì)象的請(qǐng)求可見(jiàn)范圍

singleton : 唯一bean 實(shí)例,Spring 中的 bean 默認(rèn)都是單例的。

prototype : 多例,每次請(qǐng)求都會(huì)創(chuàng)建一個(gè)新的 bean 實(shí)例,多例只會(huì)初始化和銷(xiāo)毀,不會(huì)存到容器中進(jìn)行管理

request : 每一次HTTP請(qǐng)求都會(huì)產(chǎn)生一個(gè)新的bean,該bean僅在當(dāng)前HTTP request內(nèi)有效。

session : 每一次HTTP請(qǐng)求都會(huì)產(chǎn)生一個(gè)新的 bean,該bean僅在當(dāng)前 HTTP session 內(nèi)有效。

/*使用總結(jié):在開(kāi)發(fā)中主要使用 scope="singleton"。對(duì)于 Struts1 的 Action 使用 request,

Struts2 中的 Action 使 用 prototype 類(lèi)型,其他使用 singleton,即不配置

6.SpringMVC工作原理

(1)客戶(hù)端發(fā)出http請(qǐng)求給web服務(wù)器,web服務(wù)器對(duì)http請(qǐng)求進(jìn)行解析,如果匹配DispatcherServlet的請(qǐng)求映射路徑(在web.xml中指定),web容器將請(qǐng)求轉(zhuǎn)交給DispatcherServlet.

(2)DipatcherServlet接收到這個(gè)請(qǐng)求之后將根據(jù)請(qǐng)求的信息(包括URL、Http方法、請(qǐng)求報(bào)文頭和請(qǐng)求參數(shù)Cookie等)以及HandlerMapping的配置找到處理請(qǐng)求的處理器Controller(Handler)。

(3)DispatclierServlet 根據(jù) HandlerMapping 找到對(duì)應(yīng)的Handler,處理權(quán)交給Handler ( Handler將具體的處理進(jìn)行封裝),再由具體的處理適配器 HandlerAdapter對(duì)Handler進(jìn)行具體的調(diào)用。

(4)Handler對(duì)數(shù)據(jù)處理完成以后將返回一個(gè)ModeAndView對(duì)象給DispatcherServlet.

(5)Handler返回的ModelAndView只是一個(gè)邏輯視圖并不是一個(gè)正式的視圖,dspatcherSevlet通過(guò)ViewResolver將邀輯視圖轉(zhuǎn)化為真正的視圖view(這句話(huà)簡(jiǎn)單的就是返回一個(gè)要返回的頁(yè)面的相對(duì)路徑,通過(guò)試圖解析器轉(zhuǎn)換成具體那個(gè)頁(yè)面)。

(6)DispatcherServlet通過(guò)model解析出ModeAndView中的參數(shù)進(jìn)行解析最終展現(xiàn)出完整的view并返回給客戶(hù)端

//簡(jiǎn)化
1. 客戶(hù)端(瀏覽器)發(fā)送請(qǐng)求到dispatcherServlet前端控制器 
2. DispatcherServlet 根據(jù)請(qǐng)求信息調(diào)用 HandlerMapping ,解析請(qǐng)求對(duì)應(yīng)的 Handler 
3. 解析到對(duì)應(yīng)的 Handler(也就是我們平常說(shuō)的 Controller 控制器)后,開(kāi)始由HandlerAdapter 適配器處理
4. HandlerAdapter 會(huì)根據(jù) Handler 來(lái)調(diào)用真正的處理器開(kāi)處理請(qǐng)求,并處理相應(yīng)的業(yè)務(wù)邏輯
5. 處理器處理完業(yè)務(wù)后,會(huì)返回一個(gè) ModelAndView 對(duì)象,Model 是返回的數(shù)據(jù)對(duì)象,View 是個(gè)邏輯上的 View 
6. ViewResolver 會(huì)根據(jù)邏輯 View 查找實(shí)際的 View 
7. DispaterServlet 把返回的 Model 傳給 View (視圖渲染)
8. 把 View 返回給請(qǐng)求者(瀏覽器)

7.Spring 管理事務(wù)的方式

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

(2)聲明式事務(wù),在配置文件中配置(推薦使用)

聲明式事務(wù)又分為兩種:

1)基于XML的聲明式事務(wù)

2)基于注解的聲明式事務(wù)

8.Spring 框架中用到的設(shè)計(jì)模式

(1)工廠(chǎng)設(shè)計(jì)模式 : Spring使用工廠(chǎng)模式通過(guò) BeanFactory 、ApplicationContext 創(chuàng)建 bean 對(duì)象

(2)代理設(shè)計(jì)模式 : Spring AOP 功能的實(shí)現(xiàn)

(3)單例設(shè)計(jì)模式 : Spring 中的 Bean 默認(rèn)都是單例的

(4)模板方法模式 : Spring 中 jdbcTemplate 、hibernateTemplate 等以Template 結(jié)尾的對(duì)數(shù)據(jù)庫(kù)操作類(lèi),它們就使用到了模板模式

(5)包裝器設(shè)計(jì)模式 : 我們的項(xiàng)目需要連接多個(gè)數(shù)據(jù)庫(kù),而且不同的客戶(hù)在每次訪(fǎng)問(wèn)中根據(jù)需要會(huì)去訪(fǎng)問(wèn)不同的數(shù)據(jù)庫(kù),這種模式讓我們可以根據(jù)客戶(hù)的需求能夠動(dòng)態(tài)切換不同的數(shù)據(jù)源。

(6)觀(guān)察者模式: Spring 事件驅(qū)動(dòng)模型就是觀(guān)察者模式很經(jīng)典的一個(gè)應(yīng)用。

(7)適配器模式:Spring AOP的增強(qiáng)或通知(Advice)使用到了適配器模式,spring MVC中也是用到了適配器模式適配 Controller

9.小結(jié)

(1)spring的核心思想Ioc/DI和aop

(2)使用spring不用處理對(duì)象之間的依賴(lài)關(guān)系,能夠大大的降低我們代碼的耦合度,增加項(xiàng)目的可維護(hù)性

(3)使用spring我們不用關(guān)心對(duì)象是怎么創(chuàng)建的,只需要配置好配置文件或貼注解即可,很大程度簡(jiǎn)化應(yīng)用開(kāi)發(fā)

(4)使用spring能夠?qū)⑴c業(yè)務(wù)無(wú)關(guān)的代碼,,卻為業(yè)務(wù)模塊所共同調(diào)用的邏輯使用aop將其抽象出來(lái),提高代碼可重用性

(5)spring提供與第三方web框架無(wú)縫集成,并且自己也提供一套SpringMVC框架

通過(guò)上述介紹,相信大家對(duì)Spring已經(jīng)有所了解,大家如果對(duì)此比較感興趣,想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下動(dòng)力節(jié)點(diǎn)的Spring教程,里面的課程內(nèi)容細(xì)致全面,通俗易懂,適合小白學(xué)習(xí),希望對(duì)大家能夠有所幫助哦。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

  • 全國(guó)校區(qū) 2025-04-24 搶座中
  • 全國(guó)校區(qū) 2025-05-15 搶座中
  • 全國(guó)校區(qū) 2025-06-05 搶座中
  • 全國(guó)校區(qū) 2025-06-26 搶座中
免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 精品精品国产欧美在线观看 | 九九久久久久午夜精选 | 狠狠色噜噜狠狠狠狠色综合久 | 国产亚洲欧美另类久久久 | 色婷婷综合久久久中文字幕 | 久久99国产精品 | 国产农村妇女一级毛片 | 香蕉视频网站在线观看 | 日韩中文精品亚洲第三区 | 看一级毛片 | 成人欧美一级毛片免费观看 | 久久中文字幕亚洲精品最新 | 99精品热视频 | 国产成人精品高清免费 | 激情综合婷婷亚洲图片 | 热久久这里是精品6免费观看 | 欧美狠狠入鲁的视频极速 | 成年女人18级毛片毛片 | 99在线观看精品免费99 | 欧美一区二区三区免费观看视频 | 亚洲精品丝袜在线一区波多野结衣 | 97久久曰曰久久久 | 成人深夜视频 | 5060网午夜一级毛片在线看 | 日韩99 | 亚洲视频中文 | 欧美成人一区二区三区不卡视频 | 在线观看麻豆国产精品 | zzz色| 免费精品美女久久久久久久久久 | 福利精品| 欧美日韩精品一区二区三区四区 | 99热成人精品国产免男男 | 影视先锋av资源噜噜 | 毛片大全免费观看 | 人人天天夜夜 | 久久福利资源国产精品999 | 久久久精品视频在线观看 | 日韩看片 | 国产高清一级毛片在线不卡 | 狠狠色综合久久婷婷色天使 |