中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

點(diǎn)擊一個(gè)網(wǎng)站跳轉(zhuǎn)到圖片怎么做的淘寶關(guān)鍵詞排名查詢工具免費(fèi)

點(diǎn)擊一個(gè)網(wǎng)站跳轉(zhuǎn)到圖片怎么做的,淘寶關(guān)鍵詞排名查詢工具免費(fèi),搭建一個(gè)網(wǎng)站花多少錢,免費(fèi)網(wǎng)站建設(shè)品牌1.循環(huán)依賴 循環(huán)依賴其實(shí)就是循環(huán)引用,也就是兩個(gè)或者兩個(gè)以上的 Bean 互相持有對(duì)方,最終形成閉環(huán)。比如A 依賴于B,B又依賴于A Spring中循環(huán)依賴場(chǎng)景有: prototype 原型 bean循環(huán)依賴 構(gòu)造器的循環(huán)依賴(構(gòu)造器注入)…

1.循環(huán)依賴

循環(huán)依賴其實(shí)就是循環(huán)引用,也就是兩個(gè)或者兩個(gè)以上的 Bean 互相持有對(duì)方,最終形成閉環(huán)。比如A 依賴于B,B又依賴于A

?

Spring中循環(huán)依賴場(chǎng)景有:

prototype 原型 bean循環(huán)依賴

構(gòu)造器的循環(huán)依賴(構(gòu)造器注入)

Field 屬性的循環(huán)依賴(set注入)

其中,構(gòu)造器的循環(huán)依賴問(wèn)題無(wú)法解決,在解決屬性循環(huán)依賴時(shí),可以使用懶加載,spring采用的是提前暴露對(duì)象的方法。

2.三級(jí)緩存解決循環(huán)依賴問(wèn)題

20562d9a9ac04e1da8b74a0885eb1ada.jpg

?

①Spring容器初始化ClassA通過(guò)構(gòu)造器初始化對(duì)象后提前暴露到Spring容器中的singletonFactorys(三級(jí)緩存中)。

②ClassA調(diào)用setClassB方法,Spring首先嘗試從容器中獲取ClassB,此時(shí)ClassB不存在Spring 容器中。

③Spring容器初始化ClassB,ClasssB首先將自己暴露在三級(jí)緩存中,然后從Spring容器一級(jí)、二級(jí)、三級(jí)緩存中一次中獲取ClassA 。

④獲取到ClassA后將自己實(shí)例化放入單例池中,實(shí)例 ClassA通過(guò)Spring容器獲取到ClassB,完成了自己對(duì)象初始化操作。

⑤這樣ClassA和ClassB都完成了對(duì)象初始化操作,從而解決了循環(huán)依賴問(wèn)題。

3.Bean的注解

@Component 通?的注解,可標(biāo)注任意類為 Spring 組件

@Service 在業(yè)務(wù)邏輯層使用(service層)

@Repository 在數(shù)據(jù)訪問(wèn)層使用(dao層)

@Controller 在展現(xiàn)層使用,控制器的聲明(controller層)

?

?●注入bean的注解

@Autowired:默認(rèn)按照類型來(lái)裝配注入,@Qualifier:可以改成名稱

@Resource:默認(rèn)按照名稱來(lái)裝配注入,JDK的注解,新版本已經(jīng)棄用

?

●@Autowired注解原理

@Autowired的使用簡(jiǎn)化了我們的開發(fā),實(shí)現(xiàn) AutowiredAnnotationBeanPostProcessor 類,該類實(shí)現(xiàn)了 Spring 框架的一些擴(kuò)展接口。? 實(shí)現(xiàn) BeanFactoryAware 接口使其內(nèi)部持有了 BeanFactory(可輕松的獲取需要依賴的的 Bean)。? 實(shí)現(xiàn) MergedBeanDefinitionPostProcessor 接口,實(shí)例化Bean 前獲取到 里面的 @Autowired 信息并緩存下來(lái);? 實(shí)現(xiàn) postProcessPropertyValues 接口, 實(shí)例化Bean 后從緩存取出注解信息,通過(guò)反射將依賴對(duì)象設(shè)置到 Bean 屬性里面。

?

●@SpringBootApplication注解等同于下面三個(gè)注解:

?

?@SpringBootConfiguration: 底層是Configuration注解,說(shuō)白了就是支持JavaConfig的方式來(lái)進(jìn)行配置

?@EnableAutoConfiguration:開啟自動(dòng)配置功能

?@ComponentScan:就是掃描注解,默認(rèn)是掃描當(dāng)前類下的package

4.@SpringMVC

@Controller 聲明該類為SpringMVC中的Controller

@RequestMapping 用于映射Web請(qǐng)求

@ResponseBody 支持將返回值放在response內(nèi),而不是一個(gè)頁(yè)面,通常用戶返回json數(shù)據(jù)

@RequestBody 允許request的參數(shù)在request體中,而不是在直接連接在地址后面。

@PathVariable 用于接收路徑參數(shù)

@RequestMapping("/hello/{name}")申明的路徑,將注解放在參數(shù)中前,即可獲取該值,通常作為Restful的接口實(shí)現(xiàn)方法。

●SpringMVC原理

63c8d7b9bcdf46a6892d12714f147ee2.png

?

①客戶端(瀏覽器)發(fā)送請(qǐng)求,直接請(qǐng)求到 DispatcherServlet 。

②DispatcherServlet 根據(jù)請(qǐng)求信息調(diào)? HandlerMapping ,解析請(qǐng)求對(duì)應(yīng)的 Handler 。

③解析到對(duì)應(yīng)的 Handler (也就是 Controller 控制器)后,開始由HandlerAdapter 適配器處理。

④HandlerAdapter 會(huì)根據(jù) Handler 來(lái)調(diào)?真正的處理器開處理請(qǐng)求,并處理相應(yīng)的業(yè)務(wù)邏輯。

⑤處理器處理完業(yè)務(wù)后,會(huì)返回?個(gè) ModelAndView 對(duì)象, Model 是返回的數(shù)據(jù)對(duì)象

⑥ViewResolver 會(huì)根據(jù)邏輯 View 查找實(shí)際的 View 。

⑦DispaterServlet 把返回的 Model 傳給 View (視圖渲染)。

⑧把 View 返回給請(qǐng)求者(瀏覽器)

5.@SpringMybatis

@Insert : 插入sql ,和xml insert sql語(yǔ)法完全一樣

@Select : 查詢sql, 和xml select sql語(yǔ)法完全一樣

@Update : 更新sql, 和xml update sql語(yǔ)法完全一樣

@Delete : 刪除sql, 和xml delete sql語(yǔ)法完全一樣

@Param : 入?yún)?/p>

@Results : 設(shè)置結(jié)果集合@Result : 結(jié)果

@ResultMap : 引用結(jié)果集合

@SelectKey : 獲取最新插入id

?

Q:mybatis如何防止sql注入?

A:簡(jiǎn)單的說(shuō)就是#{}是經(jīng)過(guò)預(yù)編譯的,是安全的,${}是未經(jīng)過(guò)預(yù)編譯的,僅僅是取變量的值,是非安全的,存在SQL注入。在編寫mybatis的映射語(yǔ)句時(shí),盡量采用**“#{xxx}”這樣的格式。如果需要實(shí)現(xiàn)動(dòng)態(tài)傳入表名、列名,還需要做如下修改:添加屬性statementType="STATEMENT",同時(shí)sql里的屬有變量取值都改成${xxxx}**

●Mybatis和Hibernate的區(qū)別

?

?Hibernate 框架:

Hibernate是一個(gè)開放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,建立對(duì)象與數(shù)據(jù)庫(kù)表的映射。是一個(gè)全自動(dòng)的、完全面向?qū)ο蟮某志脤涌蚣堋?/p>

?

?Mybatis框架:

Mybatis是一個(gè)開源對(duì)象關(guān)系映射框架,原名:ibatis,2010年由谷歌接管以后更名。是一個(gè)半自動(dòng)化的持久層框架。

?

●區(qū)別:

★開發(fā)方面

在項(xiàng)目開發(fā)過(guò)程當(dāng)中,就速度而言:

hibernate開發(fā)中,sql語(yǔ)句已經(jīng)被封裝,直接可以使用,加快系統(tǒng)開發(fā);

Mybatis 屬于半自動(dòng)化,sql需要手工完成,稍微繁瑣;

但是,凡事都不是絕對(duì)的,如果對(duì)于龐大復(fù)雜的系統(tǒng)項(xiàng)目來(lái)說(shuō),復(fù)雜語(yǔ)句較多,hibernate 就不是好方案。

?

★sql優(yōu)化方面

Hibernate 自動(dòng)生成sql,有些語(yǔ)句較為繁瑣,會(huì)多消耗一些性能;

Mybatis 手動(dòng)編寫sql,可以避免不需要的查詢,提高系統(tǒng)性能;

?

★對(duì)象管理比對(duì)

Hibernate 是完整的對(duì)象-關(guān)系映射的框架,開發(fā)工程中,無(wú)需過(guò)多關(guān)注底層實(shí)現(xiàn),只要去管理對(duì)象即可;

Mybatis 需要自行管理映射關(guān)系

http://www.risenshineclean.com/news/2949.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)公司普遍存在劣勢(shì)數(shù)據(jù)分析師資格證書怎么考
  • 北京上地做網(wǎng)站seo西安
  • 個(gè)人簡(jiǎn)歷制作網(wǎng)站營(yíng)銷網(wǎng)站做的好的公司
  • 一個(gè)網(wǎng)站做無(wú)限關(guān)鍵詞網(wǎng)站seo優(yōu)化怎么做
  • 湖南建設(shè)廳官方網(wǎng)站官網(wǎng)seo排名關(guān)鍵詞
  • 湛江專業(yè)做網(wǎng)站seo優(yōu)化系統(tǒng)
  • 寧波市城鄉(xiāng)建設(shè)委員會(huì)網(wǎng)站填寫電話的廣告
  • wordpress數(shù)據(jù)庫(kù)鏈接地址seo綜合查詢平臺(tái)官網(wǎng)
  • 廊坊專業(yè)做網(wǎng)站十大免費(fèi)cms建站系統(tǒng)介紹
  • 網(wǎng)站出現(xiàn)風(fēng)險(xiǎn)如何處理方法營(yíng)銷培訓(xùn)課程ppt
  • 用帝國(guó)軟件做網(wǎng)站的心得uc瀏覽器網(wǎng)頁(yè)版入口
  • 做一個(gè)公司的網(wǎng)站應(yīng)做哪些準(zhǔn)備工作內(nèi)容百度上免費(fèi)創(chuàng)建網(wǎng)站
  • 龍崗?fù)瑯?lè)社區(qū)做網(wǎng)站網(wǎng)絡(luò)工程師培訓(xùn)一般多少錢
  • 如何做網(wǎng)站監(jiān)控關(guān)鍵詞優(yōu)化是什么工作
  • 自用電腦做網(wǎng)站百度seo優(yōu)化服務(wù)項(xiàng)目
  • 怎么做網(wǎng)站的導(dǎo)航條下載百度語(yǔ)音導(dǎo)航地圖安裝
  • 做網(wǎng)站開發(fā)的女生多嗎百度推廣競(jìng)價(jià)是什么意思
  • 做網(wǎng)站的要多少錢怎樣推廣app
  • wordpress 標(biāo)簽 函數(shù)廣州優(yōu)化營(yíng)商環(huán)境條例
  • 外貿(mào)做雙語(yǔ)網(wǎng)站好還是單語(yǔ)網(wǎng)站seo搜索引擎優(yōu)化課后答案
  • 好網(wǎng)站建設(shè)公司的網(wǎng)站響應(yīng)式模版移動(dòng)優(yōu)化
  • bootstrap網(wǎng)站模版臺(tái)州關(guān)鍵詞優(yōu)化報(bào)價(jià)
  • 開封市住房和城鄉(xiāng)建設(shè)局網(wǎng)站做百度線上推廣
  • wordpress 復(fù)制網(wǎng)站競(jìng)價(jià)推廣網(wǎng)絡(luò)推廣運(yùn)營(yíng)
  • 汕頭網(wǎng)站制作電話網(wǎng)頁(yè)設(shè)計(jì)案例
  • 優(yōu)化大師好用嗎武漢網(wǎng)站seo推廣
  • 青島網(wǎng)站排名上海百網(wǎng)優(yōu)seo優(yōu)化公司
  • 網(wǎng)站后臺(tái)傳照片 c windows temp 拒絕訪問(wèn)無(wú)錫百度信息流
  • 做現(xiàn)貨黃金網(wǎng)站體育熱點(diǎn)新聞
  • 網(wǎng)站圖片優(yōu)化怎么推廣自己的店鋪