日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts、hibernate、spring、 mybatis、 spring boot 等面试题汇总

發布時間:2024/1/23 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts、hibernate、spring、 mybatis、 spring boot 等面试题汇总 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、談談你對Struts的理解。

:

1. struts是一個按MVC模式設計的Web層框架,其實它就是一個大大的servlet,這個Servlet名為ActionServlet,或是ActionServlet的子類。我們可以在web.xml文件中將符合某種特征的所有請求交給這個Servlet處理,這個Servlet再參照一個配置文件(通常為/WEB-INF/struts-config.xml)將各個請求分別分配給不同的action去處理。

一個擴展知識點:struts的配置文件可以有多個,可以按模塊配置各自的配置文件,這樣可以防止配置文件的過度膨脹;

2.ActionServlet把請求交給action去處理之前,會將請求參數封裝成一個formbean對象(就是一個java類,這個類中的每個屬性對應一個請求參數),封裝成一個什么樣的formbean對象呢?看配置文件。

3.要說明的是, ActionServletformbean對象傳遞給actionexecute方法之前,可能會調用formbeanvalidate方法進行校驗,只有校驗通過后才將這個formbean對象傳遞給actionexecute方法,否則,它將返回一個錯誤頁面,這個錯誤頁面由input屬性指定,(看配置文件)作者為什么將這里命名為input屬性,而不是error屬性,我們后面結合實際的運行效果進行分析。

4.action執行完后要返回顯示的結果視圖,這個結果視圖是用一個ActionForward對象來表示的,actionforward對象通過struts-config.xml配置文件中的配置關聯到某個jsp頁面,因為程序中使用的是在struts-config.xml配置文件為jsp頁面設置的邏輯名,這樣可以實現action程序代碼與返回的jsp頁面名稱的解耦。

?

你對struts可能還有自己的應用方面的經驗,那也要一并說出來。

2、談談你對Hibernate的理解。

:

1.面向對象設計的軟件內部運行過程可以理解成就是在不斷創建各種新對象、建立對象之間的關系,調用對象的方法來改變各個對象的狀態和對象消亡的過程,不管程序運行的過程和操作怎么樣,本質上都是要得到一個結果,程序上一個時刻和下一個時刻的運行結果的差異就表現在內存中的對象狀態發生了變化。

2.為了在關機和內存空間不夠的狀況下,保持程序的運行狀態,需要將內存中的對象狀態保存到持久化設備和從持久化設備中恢復出對象的狀態,通常都是保存到關系數據庫來保存大量對象信息。從Java程序的運行功能上來講,保存對象狀態的功能相比系統運行的其他功能來說,應該是一個很不起眼的附屬功能,java采用jdbc來實現這個功能,這個不起眼的功能卻要編寫大量的代碼,而做的事情僅僅是保存對象和恢復對象,并且那些大量的jdbc代碼并沒有什么技術含量,基本上是采用一套例行公事的標準代碼模板來編寫,是一種苦活和重復性的工作。

3.通過數據庫保存java程序運行時產生的對象和恢復對象,其實就是實現了java對象與關系數據庫記錄的映射關系,稱為ORM(即Object Relation Mapping),人們可以通過封裝JDBC代碼來實現了這種功能,封裝出來的產品稱之為ORM框架,Hibernate就是其中的一種流行ORM框架。使用Hibernate框架,不用寫JDBC代碼,僅僅是調用一個save方法,就可以將對象保存到關系數據庫中,僅僅是調用一個get方法,就可以從數據庫中加載出一個對象。

4.使用Hibernate的基本流程是:配置Configuration對象、產生SessionFactory、創建session對象,啟動事務,完成CRUD操作,提交事務,關閉session

5.使用Hibernate時,先要配置hibernate.cfg.xml文件,其中配置數據庫連接信息和方言等,還要為每個實體配置相應的hbm.xml文件,hibernate.cfg.xml文件中需要登記每個hbm.xml文件。

6.在應用Hibernate時,重點要了解Session的緩存原理,級聯,延遲加載和hql查詢。

3AOP的作用。

4、你對Spring的理解。

1.Spring實現了工廠模式的工廠類(在這里有必要解釋清楚什么是工廠模式),這個類名為BeanFactory(實際上是一個接口),在程序中通常BeanFactory的子類ApplicationContextSpring相當于一個大的工廠類,在其配置文件中通過<bean>元素配置用于創建實例對象的類名和實例對象的屬性。

2.Spring提供了對IOC良好支持,IOC是一種編程思想,是一種架構藝術,利用這種思想可以很好地實現模塊之間的解耦。IOC也稱為DIDepencyInjection),什么叫依賴注入呢?

譬如,Class Programmer {

??? Computer computer = null;

??? public void code(){

?????? //Computer computer = new IBMComputer();

?????? //Computer computer = beanfacotry.getComputer();

?????? computer.write();

??? } public void setComputer(Computer computer){

?????? this.computer = computer;

??? }

}
另外兩種方式都由依賴,第一個直接依賴于目標類,第二個把依賴轉移到工廠上,第三個徹底與目標和工廠解耦了。在spring的配置文件中配置片段如下:

<beanid=”computer” class=”cn.itcast.interview.Computer”>

</bean>

?

<beanid=”programmer” class=”cn.itcast.interview.Programmer”>

??? <property name=”computer”? ref=”computer”></property>

</bean>

3.Spring提供了對AOP技術的良好封裝, AOP稱為面向切面編程,就是系統中有很多各不相干的類的方法,在這些眾多方法中要加入某種系統功能的代碼,例如,加入日志,加入權限判斷,加入異常處理,這種應用稱為AOP。實現AOP功能采用的是代理技術,客戶端程序不再調用目標,而調用代理類,代理類與目標類對外具有相同的方法聲明,有兩種方式可以實現相同的方法聲明,一是實現相同的接口,二是作為目標的子類在,JDK中采用Proxy類產生動態代理的方式為某個接口生成實現類,如果要為某個類生成子類,則可以用CGLI B。在生成的代理類的方法中加入系統功能和調用目標類的相應方法,系統功能的代理以Advice對象進行提供,顯然要創建出代理對象,至少需要目標類和Advice類。spring提供了這種支持,只需要在spring配置文件中配置這兩個元素即可實現代理和aop功能,例如,

<beanid=”proxy” type=”org.spring.framework.aop.ProxyBeanFactory”>

??? <property name=”target”ref=””></property>

??? <property name=”advisor”ref=””></property>

?

</bean>

?

5、談談Struts中的Action servlet

6Struts優缺點
優點:
1. 實現MVC模式,結構清晰,使開發者只關注業務邏輯的實現.

2.有豐富的tag可以用,Struts的標記庫(Taglib),如能靈活動用,則能大大提高開發效率

3.頁面導航

??? 使系統的脈絡更加清晰。通過一個配置文件,即可把握整個系統各部分之間的聯系,這對于后期的維護有著莫大的好處。尤其是當另一批開發者接手這個項目時,這種優勢體現得更加明顯。

4.提供Exception處理機制.

5.數據庫鏈接池管理

6.支持I18N

缺點

一、???? 轉到展示層時,需要配置forward,如果有十個展示層的jsp,需要配置十次struts,而且還不包括有時候目錄、文件變更,需要重新修改forward,注意,每次修改配置之后,要求重新部署整個項目,而tomcate這樣的服務器,還必須重新啟動服務器

二、???? 二、Struts Action必需是threadsafe方式,它僅僅允許一個實例去處理所有的請求。所以action用到的所有的資源都必需統一同步,這個就引起了線程安全的問題。

三、???? ?測試不方便.Struts的每個Action都同Web層耦合在一起,這樣它的測試依賴于Web容器,單元測試也很難實現。不過有一個Junit的擴展工具StrutsTestCase可以實現它的單元測試。

四、???? ?類型的轉換.StrutsFormBean把所有的數據都作為String類型,它可以使用工具Commons-Beanutils進行類型轉化。但它的轉化都是在Class級別,而且轉化的類型是不可配置的。類型轉化時的錯誤信息返回給用戶也是非常困難的。

五、???? Servlet的依賴性過強. Struts處理Action時必需要依賴ServletRequest ServletResponse,所有它擺脫不了Servlet容器。

六、???? ?前端表達式語言方面.Struts集成了JSTL,所以它主要使用JSTL的表達式語言來獲取數據。可是JSTL的表達式語言在Collection和索引屬性方面處理顯得很弱。

七、???? ?Action執行的控制困難. Struts創建一個Action,如果想控制它的執行順序將會非常困難。甚至你要重新去寫Servlet來實現你的這個功能需求。

八、???? ?Action執行前和后的處理. Struts處理Action的時候是基于classhierarchies,很難在action處理前和后進行操作。

九、???? ?對事件支持不夠. struts中,實際是一個表單Form對應一個Action(DispatchAction),換一句話說:在Struts中實際是一個表單只能對應一個事件,struts這種事件方式稱為application eventapplicationeventcomponent event相比是一種粗粒度的事件

?

?

7STRUTS的應用(STRUTS架構)

Struts是采用JavaServlet/JavaServer Pages技術,開發Web應用程序的開放源碼的framework采用Struts能開發出基于MVC(Model-View-Controller)設計模式的應用構架。 Struts有如下的主要功能:.包含一個controllerservlet,能將用戶的請求發送到相應的Action對象。.JSP自由tag庫,并且在controllerservlet中提供關聯支持,幫助開發員創建交互式表單應用。.提供了一系列實用對象:XML處理、通過Java reflection APIs自動處理JavaBeans屬性、國際化的提示和消息。

?

8、說說struts1struts2的區別。

1.都是MVCWEB框架,

2struts1的老牌框架,應用很廣泛,有很好的群眾基礎,使用它開發風險很小,成本更低!struts2雖然基于這個框架,但是應用群眾并多,相對不成熟,未知的風險和變化很多,開發人員相對不好招,使用它開發項目的風險系數更大,用人成本更高!

3.struts2畢竟是站在前輩的基礎設計出來,它會改善和完善struts1中的一些缺陷,struts1中一些懸而未決問題在struts2得到了解決。

4.struts1的前端控制器是一個Servlet,名稱為ActionServletstruts2的前端控制器是一個filter,在struts2.0中叫FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter

5.struts1action需要繼承Action類,struts2action可以不繼承任何類;struts1對同一個路徑的所有請求共享一個Action實例,struts2對同一個路徑的每個請求分別使用一個獨立Action實例對象,所有對于struts2Action不用考慮線程安全問題。

6.struts1中使用formbean封裝請求參數,在struts2中直接使用action的屬性來封裝請求參數。

7.struts1中的多個業務方法放在一個Action中時(即繼承DispatchAction時),要么都校驗,要么都不校驗;對于struts2,可以指定只對某個方法進行校驗,當一個Action繼承了ActionSupport且在這個類中只編寫了validateXxx()方法,那么則只對Xxx()方法進行校驗。

?

(一個請求來了的執行流程進行分析,struts2是自動支持分模塊開發,并可以不同模塊設置不同的url前綴,這是通過packagenamespace來實現的;struts2是支持多種類型的視圖;struts2的視圖地址可以是動態的,即視圖的名稱是支持變量方式的,舉例,論壇發帖失敗后回來還要傳遞boardid。視圖內容顯示方面:它的標簽用ognl,要el強大很多,在國際化方面支持分模塊管理,兩個模塊用到同樣的key,對應不同的消息;)

?

???

Struts1不同,Struts2對用戶的每一次請求都會創建一個Action,所以Struts2中的Action是線程安全的。

?

給我印象最深刻的是:struts配置文件中的redirect視圖的url不能接受參數,而struts2配置文件中的redirect視圖可以接受參數。

?

?

9hibernate中的update()saveOrUpdate()的區別,sessionload()get()的區別。

10、簡述 Hibernate JDBC 的優缺點? 如何書寫一個 one to many 配置文件.

11iBatisHibernate有什么不同?

相同點:屏蔽jdbc api的底層訪問細節,使用我們不用與jdbc api打交道,就可以訪問數據。

jdbcapi編程流程固定,還將sql語句與java代碼混雜在了一起,經常需要拼湊sql語句,細節很繁瑣。

ibatis的好處:屏蔽jdbc api的底層訪問細節;將sql語句與java代碼進行分離;提供了將結果集自動封裝稱為實體對象和對象的集合的功能,queryForList返回對象集合,用queryForObject返回單個對象;提供了自動將實體對象的屬性傳遞給sql語句的參數。

?

Hibernate是一個全自動的orm映射工具,它可以自動生成sql語句,ibatis需要我們自己在xml配置文件中寫sql語句,hibernate要比ibatis功能負責和強大很多。因為hibernate自動生成sql語句,我們無法控制該語句,我們就無法去寫特定的高效率的sql。對于一些不太復雜的sql查詢,hibernate可以很好幫我們完成,但是,對于特別復雜的查詢,hibernate就很難適應了,這時候用ibatis就是不錯的選擇,因為ibatis還是由我們自己寫sql語句。

?

?

12、寫Hibernate的一對多和多對一雙向關聯的orm配置?

9hibernateinverse屬性的作用?

解決方案一,按照Object[]數據取出數據,然后自己組bean

解決方案二,對每個表的bean寫構造函數,比如表一要查出field1,field2兩個字段,那么有一個構造函數就是Bean(type1 filed1,type2

field2),然后在hql里面就可以直接生成這個bean了。

?

13、在DAO中如何體現DAO設計模式?

解決方案一,按照Object[]數據取出數據,然后自己組bean

解決方案二,對每個表的bean寫構造函數,比如表一要查出field1,field2兩個字段,那么有一個構造函數就是Bean(type1 filed1,type2

field2),然后在hql里面就可以直接生成這個bean了。

?

14spring+Hibernate中委托方案怎么配置?

解決方案一,按照Object[]數據取出數據,然后自己組bean

解決方案二,對每個表的bean寫構造函數,比如表一要查出field1,field2兩個字段,那么有一個構造函數就是Bean(type1 filed1,type2

field2),然后在hql里面就可以直接生成這個bean了。

?

15spring+Hibernate中委托方案怎么配置?

解決方案一,按照Object[]數據取出數據,然后自己組bean

解決方案二,對每個表的bean寫構造函數,比如表一要查出field1,field2兩個字段,那么有一個構造函數就是Bean(type1 filed1,type2

field2),然后在hql里面就可以直接生成這個bean了。

?

16.hibernate進行多表查詢每個表中各取幾個字段,也就是說查詢出來的結果集沒有一個實體類與之對應如何解決;

?

解決方案一,按照Object[]數據取出數據,然后自己組bean

解決方案二,對每個表的bean寫構造函數,比如表一要查出field1,field2兩個字段,那么有一個構造函數就是Bean(type1 filed1,type2

field2),然后在hql里面就可以直接生成這個bean了。

17.介紹一下Hibernate的二級緩存

?

按照以下思路來回答:(1)首先說清楚什么是緩存,(2)再說有了hibernateSession就是一級緩存,即有了一級緩存,為什么還要有二級緩存,(3)最后再說如何配置Hibernate的二級緩存。

1)緩存就是把以前從數據庫中查詢出來和使用過的對象保存在內存中(一個數據結構中),這個數據結構通常是或類似Hashmap,當以后要使用某個對象時,先查詢緩存中是否有這個對象,如果有則使用緩存中的對象,如果沒有則去查詢數據庫,并將查詢出來的對象保存在緩存中,以便下次使用。下面是緩存的偽代碼:

引出hibernate的第二級緩存,用下面的偽代碼分析了Cache的實現原理

Dao{

??? hashmap map = new map();

??? User getUser(integer id) {

?????? User user = map.get(id)

?????? if(user == null) {

?????????? user = session.get(id);

?????????? map.put(id,user);

?????? }

?????? return user;

??? }

}

?

Dao{

??? Cache cache =null

??? setCache(Cachecache) {

?????? this.cache = cache

??? }

??? User getUser(int id) {

?????? if(cache!=null) {

?????????? User user = cache.get(id);

?????????? if(user ==null) {

????????????? user = session.get(id);

????????????? cache.put(id,user);

?????????? }

?????????? return user;

?????? }

?????? return session.get(id);

??? }

}

2HibernateSession就是一種緩存,我們通常將之稱為Hibernate的一級緩存,當想使用session從數據庫中查詢出一個對象時,Session也是先從自己內部查看是否存在這個對象,存在則直接返回,不存在才去訪問數據庫,并將查詢的結果保存在自己內部。由于Session代表一次會話過程,一個Session與一個數據庫連接相關連,所以Session最好不要長時間保持打開,通常僅用于一個事務當中,在事務結束時就應關閉。并且Session是線程不安全的,被多個線程共享時容易出現問題。通常只有那種全局意義上的緩存才是真正的緩存應用,才有較大的緩存價值,因此,HibernateSession這一級緩存的緩存作用并不明顯,應用價值不大。Hibernate的二級緩存就是要為Hibernate配置一種全局緩存,讓多個線程和多個事務都可以共享這個緩存。我們希望的是一個人使用過,其他人也可以使用,session沒有這種效果。

3)二級緩存是獨立于Hibernate的軟件部件,屬于第三方的產品,多個廠商和組織都提供有緩存產品,例如,EHCacheOSCache等等。在Hibernate中使用二級緩存,首先就要在hibernate.cfg.xml配置文件中配置使用哪個廠家的緩存產品,接著需要配置該緩存產品自己的配置文件,最后要配置Hibernate中的哪些實體對象要納入到二級緩存的管理中。明白了二級緩存原理和有了這個思路后,很容易配置起Hibernate的二級緩存。擴展知識:一個SessionFactory可以關聯一個二級緩存,也即一個二級緩存只能負責緩存一個數據庫中的數據,當使用Hibernate 的二級緩存后,注意不要有其他的應用或SessionFactory來更改當前數據庫中的數據,這樣緩存的數據就會與數據庫中的實際數據不一致。

?

18Spring 的依賴注入是什么意思? 給一個 Bean message 屬性, 字符串類型, 注入值為 "Hello" XML 配置文件該怎么寫?

?

19Jdo是什么?

?

JDOJava對象持久化的新的規范,為java data object的簡稱,也是一個用于存取某種數據倉庫中的對象的標準化APIJDO提供了透明的對象存儲,因此對開發人員來說,存儲數據對象完全不需要額外的代碼(如JDBC API的使用)。這些繁瑣的例行工作已經轉移到JDO產品提供商身上,使開發人員解脫出來,從而集中時間和精力在業務邏輯上。另外,JDO很靈活,因為它可以在任何數據底層上運行。JDBC只是面向關系數據庫(RDBMSJDO更通用,提供到任何數據底層的存儲功能,比如關系數據庫、文件、XML以及對象數據庫(ODBMS)等等,使得應用可移植性更強。

20三大框架各起的作用?

?

struts SSH 框架中起控制的作用 , 其核心是(控制器)Controller, ActionServlet, ActionServlet 的核心就是Struts-config.xml. 主要控制邏輯關系的處理 .???hibernate 是數據持久化層 , 是一種新的對象、關系的映射工具 , 提供了從 Java 類到數據表的映射,也提供了數據查詢和恢復等機制 , 大大減少數據訪問的復雜度。把對數據庫的直接操作 , 轉換為對持久對象的操作。

spring 是一個輕量級的控制反轉 (IoC) 和面向切面 (AOP) 的容器框架, 面向接口的編程 , 由容器控制程序之間的(依賴)關系,而非傳統實現中,由程序代碼直接操控。這也就是所謂控制反轉的概念所在:(依賴)控制權由應用代碼中轉到了外部容器,控制權的轉移,是所謂反轉。依賴注入,即組件之間的依賴關系由容器在運行期決定,形象的來說,即由容器動態的將某種依賴關系注入到組件之中? 起到的主要作用是解耦

21 簡述SSH工作流程

?

JSP頁面發出請求,Struts接收頁面請求,Strutsaction調用業務邏輯,業務邏輯調用業務組件(其中使用到Spring的依賴注入?IOC,或者AOP等);業務組件根據Hibernate的對象/關系數據庫的映射關系查詢數據庫。Struts根據結果返回頁面。

?

22 談談SpringSpring?MVC的流程和事務;spring配置文件都寫什么?

?

(1)spring提供兩種管理事務的方式:一種是聲明式事務,一種是編程式事務。

Spring的聲明式事務管理,基于SpringAOP,基于Spring?AOP實現,幾乎就是xml文件的配置,不再需要不停地寫commitrollback,(但Spring仍然沒有放棄編程式的事務管理策略。

Spring的編程式事務管理,統一的事務編碼風格,幾乎是一個模板化的。

為我們提供了一個TransactionTemplate,使用回調機制,將應用代碼從樣板式的資源獲取和釋放代碼中解放出來,不再有大量的try/catch/finally/try/catch代碼塊。

(2)springMVC的流程和事務:動態注入,讓一個對象的創建不用new了,可以自動的生產,這其實就是利用java里的反射?,反射其實就是在運行時動態的去創建、調用對象,Spring就是在運行時,跟xml?Spring的配置?
文件來動態的創建對象,和調用對象里的方法的?

Spring還有一個核心就是AOP這個就是面向切面編程,可以為某一類對象?進行監督和控制(也就是在調用這類對象的具體方法的前后去調用你指定的?模塊)從而達到對一個模塊擴充的功能。這些都是通過?配置類達到的。Spring目的:就是讓對象與對象(模塊與模塊)之間的關系沒有通過代碼來關聯,都是通過配置類說明管理的(Spring根據這些配置?內部通過反射去動態的組裝對象)?
要記住:Spring是一個容器,凡是在容器里的對象才會有Spring所提供的這些服務和功能。

(3)spring的配置文件:一、引用外部屬性文件;二、常用數據源的配置;三、配置事務管理器;四、context:component-scan<!--?對包中的所有類進行掃描,以完成Bean創建和自動依賴注入的功能?-->;五、aop注解支持;六、緩存配置;七、<!--?SpringMyBatis的整合,需要在?Spring?應用上下文中定義至少兩樣東西:一個SqlSessionFactory和至少一個數據映射器類(UserMapper->iocContext.xml)。

23 ssmssh的區別?

?

(1)基于MVC三層架構,使用ssh框架?or?ssm框架?or?ssi框架,采用面向接口的方式編程。
共同點是strutsspring,不同點是nibernatemybatisibatis

(2)相對Hibernate“O/R”而言,iBATIS?是一種“Sql?Mapping”ORM實現。

(3)由于hibernate是完全面向對象的編程,在實現dao中就非常的方便,而且不重復;當mybatis.java代碼中也是可以做到不重復,麻煩一點的是,每個映射文件都必須編寫幾乎相同的配置,除了resultType不一樣。

(4)hibernate在實際編程中可以把基礎的CRUD封裝,比如BaseDao類。其它類只要去繼承BaseDao就能執行所有的基礎的CRUD。這樣就非常方便。這個帶來的好處還有,可以建立BaseServiceBaseAction?

由于mybatis的映射文件中,雖然SQL語句中的表名可以通過parameterType指定,但是resultType必須定死,不能以參數?的形式給予指定。導致的結果就是所有的DAO類的每個CRUD都必須和指定的映射文件綁定在一起,以至于不可能存在BaseDao類。當然也就不能建立?BaseServiceBaseAction

?

24 spring核心:aopioc的解釋?隔離范圍??3種注入方法?

?

(1)aop:Spring提供了對AOP技術的良好封裝,?AOP稱為面向切面編程,就是系統中有很多各不相干的類的方法,在這些眾多方法中要加入某種系統功能的代碼;例如,加入日志,加入權限判斷,加入異常處理,這種應用稱為AOP。實現AOP功能采用的是代理技術,客戶端程序不再調用目標,而調用代理類,代理類與目標類對外具有相同的方法聲明,有兩種方式可以實現相同的方法聲明,一是實現相同的接口,二是作為目標的子類在,JDK中采用Proxy類產生動態代理的方式為某個接口生成實現類,spring提供了這種支持,只需要在spring配置文件中配置這兩個元素即可實現代理和aop功能;

(2)Ioc:Spring提供了對IOC良好支持,IOC是一種編程思想,是一種架構藝術,利用這種思想可以很好地實現模塊之間的解耦。IOC也稱為DIDepency?Injection;IOC可以理解為面向接口編程思想的一種實現方法,通過IOC實現了強制的面向接口編程

(3)隔離范圍:?Spring支持JDBC規范定義的四種隔離級別

Default默認的事務隔離級別

READ_UNCOMMITTED讀未提交,一個事務可以操作另外一個未提交的事務,不能避免臟讀,不可重復讀,幻讀,隔離級別最低,并發性?能最高

READ_COMMITTED讀已提交,一個事務不可以操作另外一個未提交的事務,?能防止臟讀,不能避免不可重復讀,幻讀。

repeatable_read能夠避免臟讀,不可重復讀,不能避免幻讀

SERIALIZABLE隔離級別最高,消耗資源最低,代價最高,能夠防止臟讀,?不可重復讀,幻讀。

(4)Spring的注入和IoC反轉控制是一回事;關于gettersetter方式的注入;

Autowire=”defualt”;autowire=”byName”;autowire=”byType”;

?

25. 使用Spring框架能帶來哪些好處?

?

DependencyInjection(DI)?方法使得構造器和JavaBean properties文件中的依賴關系一目了然。

EJB容器相比較,IoC容器更加趨向于輕量級。這樣一來IoC容器在有限的內存和CPU資源的情況下進行應用程序的開發和發布就變得十分有利。

Spring并沒有閉門造車,Spring利用了已有的技術比如ORM框架、logging框架、J2EEQuartzJDKTimer以及其他視圖技術。

Spring框架是按照模塊的形式來組織的。由包和類的編號就可以看出其所屬的模塊,開發者僅僅需要選用他們需要的模塊即可。

要測試一項用Spring開發的應用程序十分簡單,因為測試相關的環境代碼都已經囊括在框架中了。更加簡單的是,利用JavaBean形式的POJO類,可以很方便的利用依賴注入來寫入測試數據。

SpringWeb框架亦是一個精心設計的Web MVC框架,為開發者們在web框架的選擇上提供了一個除了主流框架比如Struts、過度設計的、不流行web框架的以外的有力選項。

Spring提供了一個便捷的事務管理接口,適用于小型的本地事物處理(比如在單DB的環境下)和復雜的共同事物處理(比如利用JTA的復雜DB環境)。

26. BeanFactoryApplicationContext有什么區別?

?

BeanFactory?可以理解為含有bean集合的工廠類。BeanFactory?包含了種bean的定義,以便在接收到客戶端請求時將對應的bean實例化。

BeanFactory還能在實例化對象的時生成協作類之間的關系。此舉將bean自身與bean客戶端的配置中解放出來。BeanFactory還包含了bean生命周期的控制,調用客戶端的初始化方法(initialization methods)和銷毀方法(destruction methods)。

從表面上看,application context如同beanfactory一樣具有bean定義、bean關聯關系的設置,根據請求分發bean的功能。但applicationcontext在此基礎上還提供了其他的功能。

提供了支持國際化的文本消息

統一的資源文件讀取方式

已在監聽器中注冊的bean的事件

27. 請解釋SpringBean的生命周期?

?

Spring Bean的生命周期簡單易懂。在一個bean實例被初始化時,需要執行一系列的初始化操作以達到可用的狀態。同樣的,當一個bean不在被調用時需要進行相關的析構操作,并從bean容器中移除。

Spring bean factory 負責管理在spring容器中被創建的bean的生命周期。Bean的生命周期由兩組回調(call back)方法組成。

初始化之后調用的回調方法。

銷毀之前調用的回調方法。

Spring框架提供了以下四種方式來管理bean的生命周期事件:

InitializingBeanDisposableBean回調接口

針對特殊行為的其他Aware接口

Bean配置文件中的Custom init()方法和destroy()方法

@PostConstruct@PreDestroy注解方式

?

28. Spring Bean的作用域之間有什么區別?

?

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

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

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

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

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

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

29. Spring框架中的單例Beans是線程安全的么?

?

Spring框架并沒有對單例bean進行任何多線程的封裝處理。關于單例bean線程安全和并發問題需要開發者自行去搞定。但實際上,大部分的Spring bean并沒有可變的狀態(比如Serview類和DAO),所以在某種程度上說Spring的單例bean是線程安全的。如果你的bean有多種狀態的話(比如 View Model 對象),就需要自行保證線程安全。
最淺顯的解決辦法就是將多態bean的作用域由“singleton”變更為“prototype”

30. 請舉例說明如何在Spring中注入一個Java Collection

Spring提供了以下四種集合類的配置元素:

<list>?:??該標簽用來裝配可重復的list值。

<set>?:???該標簽用來裝配沒有重復的set值。

<map>:?? 該標簽可用來注入鍵和值可以為任何類型的鍵值對。

<props>?: 該標簽支持注入鍵和值都是字符串類型的鍵值對。

?

31. 構造方法注入和設值注入有什么區別?

?

請注意以下明顯的區別:

在設值注入方法支持大部分的依賴注入,如果我們僅需要注入intstringlong型的變量,我們不要用設值的方法注入。對于基本類型,如果我們沒有注入的話,可以為基本類型設置默認值。在構造方法注入不支持大部分的依賴注入,因為在調用構造方法中必須傳入正確的構造參數,否則的話為報錯。

設值注入不會重寫構造方法的值。如果我們對同一個變量同時使用了構造方法注入又使用了設置方法注入的話,那么構造方法將不能覆蓋由設值方法注入的值。很明顯,因為構造方法盡在對象被創建時調用。

在使用設值注入時有可能還不能保證某種依賴是否已經被注入,也就是說這時對象的依賴關系有可能是不完整的。而在另一種情況下,構造器注入則不允許生成依賴關系不完整的對象。

在設值注入時如果對象A和對象B互相依賴,在創建對象ASpring會拋出sObjectCurrentlyInCreationException異常,因為在B對象被創建之前A對象是不能被創建的,反之亦然。所以Spring用設值注入的方法解決了循環依賴的問題,因對象的設值方法是在對象被創建之前被調用的。

?

32. Spring 框架中都用到了哪些設計模式?

?

Spring框架中使用到了大量的設計模式,下面列舉了比較有代表性的:

代理模式—在AOPremoting中被用的比較多。

單例模式—在spring配置文件中定義的bean默認為單例模式。

模板方法—用來解決代碼重復的問題。比如.?RestTemplate,?JmsTemplate,?JpaTemplate

前端控制器—Spring提供了DispatcherServlet來對請求進行分發。

視圖幫助(ViewHelper?)Spring提供了一系列的JSP標簽,高效宏來輔助將分散的代碼整合在視圖里。

依賴注入—貫穿于BeanFactory?/?ApplicationContext接口的核心理念。

工廠模式—BeanFactory用來創建對象的實例。

33. 解釋一下MyBatis中命名空間(namespace)的作用

?

在大型項目中,可能存在大量的SQL語句,這時候為每個SQL語句起一個唯一的標識(ID)就變得并不容易了。為了解決這個問題,在MyBatis中,可以為每個映射文件起一個唯一的命名空間,這樣定義在這個映射文件中的每個SQL語句就成了定義在這個命名空間中的一個ID。只要我們能夠保證每個命名空間中這個ID是唯一的,即使在不同映射文件中的語句ID相同,也不會再產生沖突了。

34. MyBatis中的動態SQL是什么意思?

?

對于一些復雜的查詢,我們可能會指定多個查詢條件,但是這些條件可能存在也可能不存在,例如在58同城上面找房子,我們可能會指定面積、樓層和所在位置來查找房源,也可能會指定面積、價格、戶型和所在位置來查找房源,此時就需要根據用戶指定的條件動態生成SQL語句。如果不使用持久層框架我們可能需要自己拼裝SQL語句,還好MyBatis提供了動態SQL的功能來解決這個問題。MyBatis中用于實現動態SQL的元素主要有:
- if
- choose / when / otherwise
- trim
- where
- set
- foreach

35. Spring支持的事務管理類型有哪些?你在項目中使用哪種方式?

?

Spring支持編程式事務管理和聲明式事務管理。許多Spring框架的用戶選擇聲明式事務管理,因為這種方式和應用程序的關聯較少,因此更加符合輕量級容器的概念。聲明式事務管理要優于編程式事務管理,盡管在靈活性方面它弱于編程式事務管理,因為編程式事務允許你通過代碼控制業務。

事務分為全局事務和局部事務。全局事務由應用服務器管理,需要底層服務器JTA支持(如WebLogicWildFly等)。局部事務和底層采用的持久化方案有關,例如使用JDBC進行持久化時,需要使用Connetion對象來操作事務;而采用Hibernate進行持久化時,需要使用Session對象來操作事務。

Spring提供了如下所示的事務管理器。

事務管理器實現類

目標對象

DataSourceTransactionManager

注入DataSource

HibernateTransactionManager

注入SessionFactory

JdoTransactionManager

管理JDO事務

JtaTransactionManager

使用JTA管理事務

PersistenceBrokerTransactionManager

管理ApacheOJB事務

這些事務的父接口都是PlatformTransactionManagerSpring的事務管理機制是一種典型的策略模式,PlatformTransactionManager代表事務管理接口,該接口定義了三個方法,該接口并不知道底層如何管理事務,但是它的實現類必須提供getTransaction()方法(開啟事務)、commit()方法(提交事務)、rollback()方法(回滾事務)的多態實現,這樣就可以用不同的實現類代表不同的事務管理策略。使用JTA全局事務策略時,需要底層應用服務器支持,而不同的應用服務器所提供的JTA全局事務可能存在細節上的差異,因此實際配置全局事務管理器是可能需要使用JtaTransactionManager的子類,如:WebLogicJtaTransactionManagerOracleWebLogic服務器提供)、UowJtaTransactionManagerIBMWebSphere服務器提供)等。

36. 大型網站在架構上應當考慮哪些問題?

?

1.分層:分層是處理任何復雜系統最常見的手段之一,將系統橫向切分成若干個層面,每個層面只承擔單一的職責,然后通過下層為上層提供的基礎設施和服務以及上層對下層的調用來形成一個完整的復雜的系統。計算機網絡的開放系統互聯參考模型(OSI/RM)和InternetTCP/IP模型都是分層結構,大型網站的軟件系統也可以使用分層的理念將其分為持久層(提供數據存儲和訪問服務)、業務層(處理業務邏輯,系統中最核心的部分)和表示層(系統交互、視圖展示)。需要指出的是:(1)分層是邏輯上的劃分,在物理上可以位于同一設備上也可以在不同的設備上部署不同的功能模塊,這樣可以使用更多的計算資源來應對用戶的并發訪問;(2)層與層之間應當有清晰的邊界,這樣分層才有意義,才更利于軟件的開發和維護。
2.分割:分割是對軟件的縱向切分。我們可以將大型網站的不同功能和服務分割開,形成高內聚低耦合的功能模塊(單元)。在設計初期可以做一個粗粒度的分割,將網站分割為若干個功能模塊,后期還可以進一步對每個模塊進行細粒度的分割,這樣一方面有助于軟件的開發和維護,另一方面有助于分布式的部署,提供網站的并發處理能力和功能的擴展。
3.分布式:除了上面提到的內容,網站的靜態資源(JavaScriptCSS、圖片等)也可以采用獨立分布式部署并采用獨立的域名,這樣可以減輕應用服務器的負載壓力,也使得瀏覽器對資源的加載更快。數據的存取也應該是分布式的,傳統的商業級關系型數據庫產品基本上都支持分布式部署,而新生的NoSQL產品幾乎都是分布式的。當然,網站后臺的業務處理也要使用分布式技術,例如查詢索引的構建、數據分析等,這些業務計算規模龐大,可以使用Hadoop以及MapReduce分布式計算框架來處理。
4.集群:集群使得有更多的服務器提供相同的服務,可以更好的提供對并發的支持。
5.緩存:所謂緩存就是用空間換取時間的技術,將數據盡可能放在距離計算最近的位置。使用緩存是網站優化的第一定律。我們通常說的CDN、反向代理、熱點數據都是對緩存技術的使用。
6.異步:異步是實現軟件實體之間解耦合的又一重要手段。異步架構是典型的生產者消費者模式,二者之間沒有直接的調用關系,只要保持數據結構不變,彼此功能實現可以隨意變化而不互相影響,這對網站的擴展非常有利。使用異步處理還可以提高系統可用性,加快網站的響應速度(用Ajax加載數據就是一種異步技術),同時還可以起到削峰作用(應對瞬時高并發)。&quot;能推遲處理的都要推遲處理"是網站優化的第二定律,而異步是踐行網站優化第二定律的重要手段。
7.冗余:各種服務器都要提供相應的冗余服務器以便在某臺或某些服務器宕機時還能保證網站可以正常工作,同時也提供了災難恢復的可能性。冗余是網站高可用性的重要保證。

?

37. 你用過的網站前端優化的技術有哪些?

?

瀏覽器訪問優化:
- 減少HTTP請求數量:合并CSS、合并javascript、合并圖片(CSS Sprite
- 使用瀏覽器緩存:通過設置HTTP響應頭中的Cache-ControlExpires屬性,將CSSJavaScript、圖片等在瀏覽器中緩存,當這些靜態資源需要更新時,可以更新HTML文件中的引用來讓瀏覽器重新請求新的資源
- 啟用壓縮
- CSS前置,JavaScript后置
- 減少Cookie傳輸
CDN加速:CDNContentDistribute Network)的本質仍然是緩存,將數據緩存在離用戶最近的地方,CDN通常部署在網絡運營商的機房,不僅可以提升響應速度,還可以減少應用服務器的壓力。當然,CDN緩存的通常都是靜態資源。
反向代理:反向代理相當于應用服務器的一個門面,可以保護網站的安全性,也可以實現負載均衡的功能,當然最重要的是它緩存了用戶訪問的熱點資源,可以直接從反向代理將某些內容返回給用戶瀏覽器。

?

38. 你使用過的應用服務器優化技術有哪些?

?

分布式緩存:緩存的本質就是內存中的哈希表,如果設計一個優質的哈希函數,那么理論上哈希表讀寫的漸近時間復雜度為O(1)。緩存主要用來存放那些讀寫比很高、變化很少的數據,這樣應用程序讀取數據時先到緩存中讀取,如果沒有或者數據已經失效再去訪問數據庫或文件系統,并根據擬定的規則將數據寫入緩存。對網站數據的訪問也符合二八定律(Pareto分布,冪律分布),即80%的訪問都集中在20%的數據上,如果能夠將這20%的數據緩存起來,那么系統的性能將得到顯著的改善。當然,使用緩存需要解決以下幾個問題:
- 頻繁修改的數據;
- 數據不一致與臟讀;
- 緩存雪崩(可以采用分布式緩存服務器集群加以解決,memcached是廣泛采用的解決方案);
- 緩存預熱;
- 緩存穿透(惡意持續請求不存在的數據)。
異步操作:可以使用消息隊列將調用異步化,通過異步處理將短時間高并發產生的事件消息存儲在消息隊列中,從而起到削峰作用。電商網站在進行促銷活動時,可以將用戶的訂單請求存入消息隊列,這樣可以抵御大量的并發訂單請求對系統和數據庫的沖擊。目前,絕大多數的電商網站即便不進行促銷活動,訂單系統都采用了消息隊列來處理。
使用集群。
代碼優化:
- 多線程:基于JavaWeb開發基本上都通過多線程的方式響應用戶的并發請求,使用多線程技術在編程上要解決線程安全問題,主要可以考慮以下幾個方面:A. 將對象設計為無狀態對象(這和面向對象的編程觀點是矛盾的,在面向對象的世界中被視為不良設計),這樣就不會存在并發訪問時對象狀態不一致的問題。B. 在方法內部創建對象,這樣對象由進入方法的線程創建,不會出現多個線程訪問同一對象的問題。使用ThreadLocal將對象與線程綁定也是很好的做法,這一點在前面已經探討過了。C. 對資源進行并發訪問時應當使用合理的鎖機制。
- 非阻塞I/O使用單線程和非阻塞I/O是目前公認的比多線程的方式更能充分發揮服務器性能的應用模式,基于Node.js構建的服務器就采用了這樣的方式。JavaJDK 1.4中就引入了NIONon-blockingI/O,Servlet3規范中又引入了異步Servlet的概念,這些都為在服務器端采用非阻塞I/O提供了必要的基礎。
- 資源復用:資源復用主要有兩種方式,一是單例,二是對象池,我們使用的數據庫連接池、線程池都是對象池化技術,這是典型的用空間換取時間的策略,另一方面也實現對資源的復用,從而避免了不必要的創建和釋放資源所帶來的開銷。

?

39. 持久層設計要考慮的問題有哪些?你用過的持久層框架有哪些?

所謂"持久"就是將數據保存到可掉電式存儲設備中以便今后使用,簡單的說,就是將內存中的數據保存到關系型數據庫、文件系統、消息隊列等提供持久化支持的設備中。持久層就是系統中專注于實現數據持久化的相對獨立的層面。

持久層設計的目標包括:
- 數據存儲邏輯的分離,提供抽象化的數據訪問接口。
- 數據訪問底層實現的分離,可以在不修改代碼的情況下切換底層實現。
- 資源管理和調度的分離,在數據訪問層實現統一的資源調度(如緩存機制)。
- 數據抽象,提供更面向對象的數據操作。

持久層框架有:
- Hibernate
- MyBatis
- TopLink
- Guzz
- jOOQ
- Spring Data
- ActiveJDBC

40. Xml映射文件中,除了常見的select|insert|updae|delete標簽之外,還有哪些標簽?

(京東)還有很多其他的標簽,<resultMap><parameterMap><sql><include><selectKey>,加上動態sql9個標簽,trim|where|set|foreach|if|choose|when|otherwise|bind等,其中<sql>sql片段標簽,通過<include>標簽引入sql片段,<selectKey>為不支持自增的主鍵生成策略標簽。

41.通常一個Xml映射文件,都會寫一個Dao接口與之對應,請問,這個Dao接口的工作原理是什么?Dao接口里的方法,參數不同時,方法能重載嗎?

Dao接口,就是人們常說的Mapper接口,接口的全限名,就是映射文件中的namespace的值,接口的方法名,就是映射文件中MappedStatementid值,接口方法內的參數,就是傳遞給sql的參數。Mapper接口是沒有實現類的,當調用接口方法時,接口全限名+方法名拼接字符串作為key值,可唯一定位一個MappedStatement,舉例:com.mybatis3.mappers.StudentDao.findStudentById,可以唯一找到namespacecom.mybatis3.mappers.StudentDao下面id=?findStudentByIdMappedStatement。在Mybatis中,每一個<select><insert><update><delete>標簽,都會被解析為一個MappedStatement對象。

Dao接口里的方法,是不能重載的,因為是全限名+方法名的保存和尋找策略。

Dao接口的工作原理是JDK動態代理,Mybatis運行時會使用JDK動態代理為Dao接口生成代理proxy對象,代理對象proxy會攔截接口方法,轉而執行MappedStatement所代表的sql,然后將sql執行結果返回。

42.Mybatis是如何進行分頁的?分頁插件的原理是什么?

Mybatis使用RowBounds對象進行分頁,它是針對ResultSet結果集執行的內存分頁,而非物理分頁,可以在sql內直接書寫帶有物理分頁的參數來完成物理分頁功能,也可以使用分頁插件來完成物理分頁。

分頁插件的基本原理是使用Mybatis提供的插件接口,實現自定義插件,在插件的攔截方法內攔截待執行的sql,然后重寫sql,根據dialect方言,添加對應的物理分頁語句和物理分頁參數。

舉例:select * from student,攔截sql后重寫為:selectt.* from select * from studentt?limit010

43.Mybatis動態sql是做什么的?都有哪些動態sql?能簡述一下動態sql的執行原理不?

Mybatis動態sql可以讓我們在Xml映射文件內,以標簽的形式編寫動態sql,完成邏輯判斷和動態拼接sql的功能,Mybatis提供了9種動態sql標簽trim|where|set|foreach|if|choose|when|otherwise|bind

其執行原理為,使用OGNLsql參數對象中計算表達式的值,根據表達式的值動態拼接sql,以此來完成動態sql的功能。

44.Mybatis是如何將sql執行結果封裝為目標對象并返回的?都有哪些映射形式?

第一種是使用<resultMap>標簽,逐一定義列名和對象屬性名之間的映射關系。第二種是使用sql列的別名功能,將列別名書寫為對象屬性名,比如T_NAME?AS NAME,對象屬性名一般是name,小寫,但是列名不區分大小寫,Mybatis會忽略列名大小寫,智能找到與之對應對象屬性名,你甚至可以寫成T_NAME?AS NaMeMybatis一樣可以正常工作。

有了列名與屬性名的映射關系后,Mybatis通過反射創建對象,同時使用反射給對象的屬性逐一賦值并返回,那些找不到映射關系的屬性,是無法完成賦值的。

45.Mybatis能執行一對一、一對多的關聯查詢嗎?都有哪些實現方式,以及它們之間的區別。

能,Mybatis不僅可以執行一對一、一對多的關聯查詢,還可以執行多對一,多對多的關聯查詢,多對一查詢,其實就是一對一查詢,只需要把selectOne()修改為selectList()即可;多對多查詢,其實就是一對多查詢,只需要把selectOne()修改為selectList()即可。

關聯對象查詢,有兩種實現方式,一種是單獨發送一個sql去查詢關聯對象,賦給主對象,然后返回主對象。另一種是使用嵌套查詢,嵌套查詢的含義為使用join查詢,一部分列是A對象的屬性值,另外一部分列是關聯對象B的屬性值,好處是只發一個sql查詢,就可以把主對象和其關聯對象查出來。

那么問題來了,join查詢出來100條記錄,如何確定主對象是5個,而不是100個?其去重復的原理是<resultMap>標簽內的<id>子標簽,指定了唯一確定一條記錄的id列,Mybatis根據<id>列值來完成100條記錄的去重復功能,<id>可以有多個,代表了聯合主鍵的語意。

同樣主對象的關聯對象,也是根據這個原理去重復的,盡管一般情況下,只有主對象會有重復記錄,關聯對象一般不會重復。

舉例:下面join查詢出來6條記錄,一、二列是Teacher對象列,第三列為Student對象列,Mybatis去重復處理后,結果為1個老師6個學生,而不是6個老師6個學生。

?? ? ?t_id ? ? t_name? ? ? ? ?s_id

| ? ? ? ??1 | teacher ? ? ?| ? ? ?38 |
| ? ? ? ? ?1 | teacher ? ? ?| ?? ?39 |
| ? ? ? ? ?1 | teacher ? ? ?| ?? ?40 |
| ? ? ? ? ?1 | teacher ? ? ?| ?? ?41 |
| ? ? ? ? ?1 | teacher ? ? ?| ?? ?42 |
| ? ? ? ? ?1 | teacher ? ? ?| ?? ?43 |

46.Mybatis是否支持延遲加載?如果支持,它的實現原理是什么?

Mybatis僅支持association關聯對象和collection關聯集合對象的延遲加載,association指的就是一對一,collection指的就是一對多查詢。在Mybatis配置文件中,可以配置是否啟用延遲加載lazyLoadingEnabled=true|false

它的原理是,使用CGLIB創建目標對象的代理對象,當調用目標方法時,進入攔截器方法,比如調用a.getB().getName(),攔截器invoke()方法發現a.getB()null值,那么就會單獨發送事先保存好的查詢關聯B對象的sql,把B查詢上來,然后調用a.setB(b),于是a的對象b屬性就有值了,接著完成a.getB().getName()方法的調用。這就是延遲加載的基本原理。

當然了,不光是Mybatis,幾乎所有的包括Hibernate,支持延遲加載的原理都是一樣的。

47. 簡單的說一下MyBatis的一級緩存和二級緩存?

Mybatis首先去緩存中查詢結果集,如果沒有則查詢數據庫,如果有則從緩存取出返回結果集就不走數據庫。Mybatis內部存儲緩存使用一個HashMapkeyhashCode+sqlId+Sql語句。value為從查詢出來映射生成的java對象


Mybatis的二級緩存即查詢緩存,它的作用域是一個mappernamespace,即在同一個namespace中查詢sql可以從緩存中獲取數據。二級緩存是可以跨SqlSession的。

48.SpringMVCStruts2的主要區別?

springmvc的入口是一個servlet即前端控制器,而struts2入口是一個filter過慮器。

springmvc是基于方法開發,傳遞參數是通過方法形參,可以設計為單例或多例(建議單例)struts2是基于類開發,傳遞參數是通過類的屬性,只能設計為多例。
Struts采用值棧存儲請求和響應的數據,通過OGNL存取數據, springmvc通過參數解析器是將request對象內容進行解析成方法形參,將響應數據和頁面封裝成ModelAndView對象,最后又將模型數據通過request對象傳輸到頁面。 Jsp視圖解析器默認使用jstl

49. SpringMvc怎么和AJAX相互調用的

通過Jackson框架就可以把Java里面的對象直接轉化成Js可以識別的Json對象

? 具體步驟如下

? 1.加入Jackson.jar

? 2.在配置文件中配置json的映射

? 3.在接受Ajax方法里面可以直接返回Object,List,但方法前面要加上@ResponseBody注解

50.SpringMvc里面攔截器是怎么寫的

有兩種寫法,一種是實現接口,另外一種是繼承適配器類,然后在SpringMvc的配置文件中配置攔截器即可:

? <!-- 配置SpringMvc的攔截器-->

<mvc:interceptors>

??? <!-- 配置一個攔截器的Bean就可以了默認是對所有請求都攔截 -->

??? <bean id="myInterceptor"class="com.et.action.MyHandlerInterceptor"></bean>

?

??? <!-- 只針對部分請求攔截 -->

??? <mvc:interceptor>

?????? <mvc:mappingpath="/modelMap.do" />

?????? <bean class="com.et.action.MyHandlerInterceptorAdapter"/>

??? </mvc:interceptor>

</mvc:interceptors>

51. 講下SpringMvc的執行流程

系統啟動的時候根據配置文件創建spring的容器,首先是發送http請求到核心控制器disPatherServletspring容器通過映射器去尋找業務控制器,

使用適配器找到相應的業務類,在進業務類時進行數據封裝,在封裝前可能會涉及到類型轉換,執行完業務類后使用ModelAndView進行視圖轉發,數據放在model中,用map傳遞數據進行頁面顯示。

52. Mybatis都有哪些Executor執行器?它們之間的區別是什么?

Mybatis有三種基本的Executor執行器,SimpleExecutorReuseExecutorBatchExecutor

SimpleExecutor:每執行一次updateselect,就開啟一個Statement對象,用完立刻關閉Statement對象。

ReuseExecutor:執行updateselect,以sql作為key查找Statement對象,存在就使用,不存在就創建,用完后,不關閉Statement對象,而是放置于Map

53.Spring Boot總結

1、什么是SpringBoot
  描述:Spring BootSpring社區發布的一個開源項目,旨在幫助開發者快速并且更簡單的構建項目。大多數SpringBoot項目只需要很少的配置文件。
2SpringBoot核心功能
2.1、獨立運行Spring項目
Spring boot 可以以jar包形式獨立運行,運行一個Spring Boot項目只需要通過java -jar xx.jar來運行。
2.2、內嵌servlet容器
Spring Boot可以選擇內嵌Tomcatjetty或者Undertow,這樣我們無須以war包形式部署項目。
2.3、提供starter簡化Maven配置
spring提供了一系列的start pom來簡化Maven的依賴加載,例如,當你使用了spring-boot-starter-web,會自動加入如圖5-1所示的依賴包。
2.4、自動裝配Spring
SpringBoot
會根據在類路徑中的jar包,類、為jar包里面的類自動配置Bean,這樣會極大地減少我們要使用的配置。當然,SpringBoot只考慮大多數的開發場景,并不是所有的場景,若在實際開發中我們需要配置Bean,而SpringBoot滅有提供支持,則可以自定義自動配置。
2.5、準生產的應用監控
SpringBoot提供基于http ssh telnet對運行時的項目進行監控。
2.6、無代碼生產和xml配置  
SpringBoot不是借助與代碼生成來實現的,而是通過條件注解來實現的,這是Spring4.x提供的新特性。
3SpringBoot優缺點
優點:
3.1、快速構建項目。
3.2、對主流開發框架的無配置集成。
3.3、項目可獨立運行,無須外部依賴Servlet容器。
3.4、提供運行時的應用監控。
3.5、極大的提高了開發、部署效率。
3.6、與云計算的天然集成。
缺點:
3.1、如果你不認同spring框架,也許這就是缺點。
4SpringBoot特性
4.1、創建獨立的Spring項目
4.2、內置TomcatJetty容器
4.3、提供一個starter POMs來簡化Maven配置
4.4、提供了一系列大型項目中常見的非功能性特性,如安全、指標,健康檢測、外部配置等
4.5、完全沒有代碼生成和xml配置文件
6SpringBoot CLI
SpringBoot CLI SpringBoot提供的控制臺命令工具。
7SpringBoot maven 構建項目
spring-boot-starter-parent:是一個特殊Start,它用來提供相關的Maven依賴項,使用它之后,常用的包依賴可以省去version標簽。
8SpringBoot幾個常用的注解
1@RestController@Controller指定一個類,作為控制器的注解
2@RequestMapping方法級別的映射注解,這一個用過Spring MVC的小伙伴相信都很熟悉
3@EnableAutoConfiguration@SpringBootApplication是類級別的注解,根據maven依賴的jar來自動猜測完成正確的spring的對應配置,只要引入了spring-boot-starter-web的依賴,默認會自動配置Spring MVCtomcat容器
4@Configuration類級別的注解,一般這個注解,我們用來標識main方法所在的類,完成元數據bean的初始化。
5@ComponentScan類級別的注解,自動掃描加載所有的Spring組件包括Bean注入,一般用在main方法所在的類上
6@ImportResource類級別注解,當我們必須使用一個xml的配置時,使用@ImportResource@Configuration來標識這個文件資源的類。
7@Autowired注解,一般結合@ComponentScan注解,來自動注入一個ServiceDao級別的Bean
8@Component類級別注解,用來標識一個組件,比如我自定了一個filter,則需要此注解標識之后,Spring Boot才會正確識別。

54. 簡單說下你對Spring Cloud的理解

SpringCloud Pivotal提供的用于簡化分布式系統構建的工具集。Spring Cloud引入了云平臺連接器(CloudConnector)和服務連接器(Service Connector)的概念。云平臺連接器是一個接口,需要由云平臺提供者進行實現,以便庫中的其他模塊可以與該云平臺協同工作。

Spring Boot

Spring Cloud最重要的一點是它可以和Spring Boot一起工作,Spring Boot可以幫助開發者更容易地創建基于Spring的應用程序和服務。

  從Spring Boot項目名稱中的Boot就可以看出來,Spring Boot的作用在于創建和啟動新的基于Spring框架的項目。Spring Boot會選擇最適合的Spring子項目和第三方開源庫進行整合。大部分Spring Boot應用只需要非常少的配置就可以快速運行起來。Spring Boot包含的特性如下:

  創建可以獨立運行的Spring應用。

  直接嵌入TomcatJetty服務器,不需要部署WAR文件。

  提供推薦的基礎POM文件來簡化ApacheMaven配置。

  盡可能的根據項目依賴來自動配置Spring框架。

  提供可以直接在生產環境中使用的功能,如性能指標、應用信息和應用健康檢查。

  沒有代碼生成,也沒有XML配置文件。

  服務發現和智能路由

  每一個服務都含有一個特定意義的微服務架構。

也可以根據自己擴展學習的再多多發揮,不說則已,說則正確。

?

歡迎打賞

總結

以上是生活随笔為你收集整理的struts、hibernate、spring、 mybatis、 spring boot 等面试题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产一区网| 中文字幕成人av | 亚洲激情一区二区三区 | 日韩最新中文字幕 | 久久香蕉影视 | 日本久热| 国模视频一区二区三区 | 五月天久久久久 | 91x色| 国精产品一二三线999 | 日韩欧美在线高清 | 日韩精品中字 | 成人91视频| 国际精品久久久久 | 天天爱天天插 | 99爱国产精品 | 欧美日韩成人 | 日韩 在线a | 成人在线视频观看 | 国产精品久久久久久久免费观看 | 免费在线观看国产黄 | 五月婷婷丁香色 | 天天插伊人| 成人久久电影 | 九九免费在线观看 | 国产 在线观看 | 在线观看亚洲 | 久久久精品一区二区 | 69av在线播放| 国产中文在线字幕 | 深夜免费福利网站 | 国产玖玖在线 | 天天摸天天舔天天操 | 成人一级片视频 | 成年人在线观看 | 日韩影视大全 | 国产91精品在线观看 | 毛片基地黄久久久久久天堂 | 精品一区二区在线看 | 97成人精品| 91久久精品一区二区三区 | 男女全黄一级一级高潮免费看 | 狠狠狠狠狠狠狠狠干 | 日韩一区二区三区不卡 | 88av色 | 人人澡人人干 | 免费观看一区二区三区视频 | 黄网站色视频免费观看 | 亚洲精品动漫久久久久 | 91av在线视频免费观看 | 久久精品中文视频 | 99re在线视频观看 | 国产探花在线看 | 97成人免费| 在线综合色 | 国产精品一区二区在线 | 九九九九色 | 免费在线观看污网站 | 免费av成人在线 | 国产只有精品 | 国内亚洲精品 | 中文电影网 | 国产伦精品一区二区三区高清 | 国产精品成人a免费观看 | 欧美,日韩 | 在线а√天堂中文官网 | 久久成人久久 | 欧美日韩国产一区二区三区 | 欧美日韩中文在线观看 | 五月婷亚洲 | 天天做综合网 | 亚洲免费永久精品国产 | 91精品国产九九九久久久亚洲 | 在线视频黄 | av在线a| 91精品一区二区三区久久久久久 | 亚洲精品av在线 | 久久成人国产精品一区二区 | 日本中文字幕网 | 伊人五月天av | 777奇米四色| 日韩中文字幕免费视频 | 亚洲 中文 欧美 日韩vr 在线 | 激情五月播播久久久精品 | 国产馆在线播放 | 日韩高清成人 | 激情小说 五月 | 亚洲开心色| 国产免费人人看 | www免费黄色 | 日韩免费在线观看网站 | 九九综合久久 | 国产破处在线播放 | 色视频网站免费观看 | 久久久久久久毛片 | 粉嫩av一区二区三区四区 | 色的网站在线观看 | 免费碰碰| 亚洲视频999 | 欧美a视频在线观看 | 日韩欧美一区二区三区在线观看 | 国产亚州精品视频 | 91日韩精品视频 | 91在线操| 国产正在播放 | 欧美一区二视频在线免费观看 | 在线看成人av | 午夜精品一二区 | 91污视频在线观看 | 久久久久久久久久久久久久av | 97超碰人人澡 | 97精品一区二区三区 | 国产精品2020 | 中文字幕三区 | 午夜成人影视 | 九九九在线 | 一区二区三区日韩在线 | 日本福利视频在线 | 久99久精品视频免费观看 | 视频一区视频二区在线观看 | 五月婷婷在线视频观看 | av视屏在线 | 久久激情视频网 | 最新日韩电影 | 91色偷偷| 久久国产视频网站 | 五月婷婷另类国产 | 超碰在线色 | 成年人毛片在线观看 | 9在线观看免费高清完整 | 免费日韩av片 | 久久婷婷一区二区三区 | 婷婷久久综合九色综合 | 男女精品久久 | 欧美日韩另类在线观看 | 黄色网址a | 亚洲高清视频在线观看 | 亚洲精品mv在线观看 | 97看片| 在线观看爱爱视频 | 欧美超碰在线 | 欧美色就是色 | 精品国产一区二区三区在线 | 日韩女同av | 狠狠五月婷婷 | 日韩欧美在线中文字幕 | 欧美日本不卡 | 最近日本字幕mv免费观看在线 | 国产精品高潮呻吟久久av无 | 免费看一级 | 狠狠色伊人亚洲综合网站野外 | 超碰97免费观看 | 久久99深爱久久99精品 | 久久久久久久99 | 免费看一级黄色 | 欧美 另类 交 | 国产最新精品视频 | 91免费观看国产 | 黄色av大片| 久久久久久久久毛片 | 久久国产精品二国产精品中国洋人 | 93久久精品日日躁夜夜躁欧美 | 友田真希x88av| 91成年视频 | 国产成人高清 | 99久久综合国产精品二区 | 国产精品免费久久久久影院仙踪林 | 亚洲dvd| 成人黄色电影视频 | 久久小视频 | 在线成人中文字幕 | 国产一级a毛片视频爆浆 | 国产成人在线免费观看 | 久久免费视频2 | 一本大道久久精品懂色aⅴ 五月婷社区 | 亚洲三级在线免费观看 | 亚洲视频在线看 | 婷婷精品国产欧美精品亚洲人人爽 | 又黄又色又爽 | 亚州天堂 | 天天拍天天色 | 国产精品 国产精品 | 日本三级吹潮在线 | 91九色网站| 又粗又长又大又爽又黄少妇毛片 | 97超碰在| 在线看黄网站 | 亚洲理论影院 | 天天舔天天射天天操 | 日韩视频在线一区 | 国产96在线 | 欧美激情精品久久久久久 | 最近中文字幕在线 | 免费亚洲一区二区 | 日韩影视在线观看 | av在线一二三区 | av一区二区在线观看中文字幕 | 欧美日韩视频在线 | 中文字幕丝袜一区二区 | 91在线免费播放视频 | 精品国产一区二区三区日日嗨 | 天天综合网国产 | 中文字幕在线观看第二页 | 96精品视频 | 九九九九精品 | 美国人与动物xxxx | 欧美日韩视频精品 | 亚洲精选99 | 久久久久久综合网天天 | 欧美在线99 | 国产视频中文字幕在线观看 | 性日韩欧美在线视频 | 黄色a级片在线观看 | 欧美一区二区三区在线看 | 日本精品在线 | 91成人在线看| 美女免费视频观看网站 | 日韩在线高清免费视频 | 天天操天天操 | 片网址| 99久久久国产精品美女 | 国产一级在线观看 | 精品视频久久 | 国产黄免费在线观看 | 一级淫片a| 黄在线免费观看 | 国产精品第2页 | 999国产在线 | 国产精品久久99综合免费观看尤物 | 天天天天综合 | 探花视频在线观看免费版 | 国产精品一区二区 91 | 国产一级一片免费播放放 | 欧美一级片免费观看 | 人人干在线观看 | 涩涩网站在线观看 | 亚洲精品国产高清 | 国产成人精品一区二区三区在线观看 | 777久久久 | 六月天色婷婷 | 久在线观看视频 | 国产亚洲精品女人久久久久久 | 九九免费观看视频 | 亚洲视频在线视频 | 日本论理电影 | 久二影院 | 天天夜夜操 | 97精品国产一二三产区 | 国产精品一区二区av | 999久久国精品免费观看网站 | 超碰97中文| 中文字幕在线看视频国产 | 男女精品久久 | 婷婷色网视频在线播放 | 欧美乱码精品一区 | 黄色精品久久 | 日韩色在线观看 | 日韩网 | 视频一区二区三区视频 | 国产欧美日韩视频 | 日韩精品视频在线观看网址 | 玖玖在线观看视频 | 久久高清免费观看 | 91视频在线网址 | 2018亚洲男人天堂 | 成人黄色一级视频 | 色婷久久| 欧美日韩一二三四区 | 日日夜夜人人天天 | 99久久精品一区二区成人 | 成人黄色小说视频 | 国产日韩欧美自拍 | 九九热re | 国产精品女同一区二区三区久久夜 | 99视频黄 | 亚洲高清av在线 | 免费福利在线视频 | 亚洲一级黄色片 | 久热超碰 | 欧美日韩国产精品久久 | 国产区欧美 | 中文字幕乱偷在线 | 久草免费在线视频观看 | 色999在线| 日日干天天操 | 国内精品久久天天躁人人爽 | 欧美精品你懂的 | 天天躁天天狠天天透 | 日本成人中文字幕在线观看 | 亚洲精品国产精品国自产观看浪潮 | 香蕉手机在线 | 日韩欧美大片免费观看 | 国产精品一区二区白浆 | 久久综合九色综合97婷婷女人 | 在线有码中文字幕 | 亚洲黄a | 日本激情动作片免费看 | 亚洲成人黄色av | 欧美a级片网站 | 在线不卡a | 免费看片成年人 | 在线观看久久 | 九月婷婷综合网 | 精品一区二区综合 | 日韩一级电影网站 | 中文字幕在线国产精品 | 国产福利91精品 | 久久这里只有精品9 | 久久在线精品 | 国产亚洲精品久久久久久无几年桃 | av电影在线免费观看 | 黄色午夜 | 91精品麻豆 | 99r国产精品 | 欧美精品九九99久久 | 看av免费 | 中文字幕一区二区三区四区视频 | 欧美91成人网 | 久热爱| 国产专区欧美专区 | 99免费视频 | 中文字幕激情 | 色午夜影院 | 亚洲天堂色婷婷 | 精品福利国产 | 99精品久久久久久久 | 欧美99精品 | 亚洲天堂网站 | 亚洲欧洲美洲av | 国产一区免费视频 | 96国产精品视频 | 国产99re| 日本久久91 | 黄色一集片 | 久久精品国产免费观看 | 久久九九视频 | 日p视频| 四虎www | 91精彩在线视频 | 亚洲精品免费在线观看 | 亚洲第一伊人 | 99这里只有久久精品视频 | 日韩视频一区二区在线 | 伊人五月天 | 久久久一本精品99久久精品66 | 久久综合婷婷综合 | 欧美精品资源 | 日韩欧美极品 | 高潮久久久久久 | www五月| 日批视频| 国产成人亚洲精品自产在线 | 国产高清中文字幕 | 97视频在线免费观看 | 99在线观看视频 | 国产色综合天天综合网 | 久久亚洲综合色 | av黄色亚洲 | 激情开心网站 | 在线视频 影院 | 国产伦精品一区二区三区在线 | 美女网站一区 | 波多野结衣视频一区二区 | 韩国精品在线观看 | 精品一区二区久久久久久久网站 | 9草在线| 国内外成人免费在线视频 | 日韩在线视频不卡 | 国产精品永久免费观看 | 麻豆手机在线 | 奇米导航 | 日韩xxxx视频 | 色吊丝在线永久观看最新版本 | 五月婷婷在线视频观看 | 精品国偷自产国产一区 | 欧美色婷 | www91在线| 欧美日韩高清一区二区三区 | 国产亚洲一区二区在线观看 | 色黄视频免费观看 | 亚洲精品久久久蜜桃 | 亚洲免费在线观看视频 | 国产精品一区二区中文字幕 | 337p欧美| 不卡国产在线 | 日韩精品一区在线播放 | 久久久久久久久久久网站 | 99久久精品国产一区二区成人 | 精精国产xxxx视频在线播放 | 狠狠干中文字幕 | 久99久精品视频免费观看 | 97色婷婷人人爽人人 | av免费看电影| 亚洲欧美日本国产 | 国际精品网 | 91插插插免费视频 | 成人av资源网站 | 国产精品乱码久久久久 | 国产一区二区三区免费视频 | 麻花豆传媒mv在线观看 | 一级一片免费观看 | 久久精品www人人爽人人 | 夜夜高潮夜夜爽国产伦精品 | 一区二区三区四区在线 | 精品日韩在线一区 | 麻豆传媒视频观看 | 久久久久激情视频 | 久久久久国产视频 | 超碰97中文 | 日韩视频区| 亚洲激情在线视频 | 激情久久伊人 | 在线看片a | 亚洲视频中文 | 国产成人高清 | 精品视频在线视频 | 色婷婷色 | 天天草网站 | 亚洲在线看 | 中文字幕91在线 | 亚洲精品视频在线播放 | www.午夜色.com | 安徽妇搡bbbb搡bbbb | 国产五码一区 | 国产精品免费大片视频 | 在线小视频你懂得 | 精品自拍sae8—视频 | 日韩毛片在线播放 | 伊人色**天天综合婷婷 | 久久九九国产精品 | 一区在线播放 | 探花视频在线观看 | 日本精品视频一区 | 最近中文字幕完整视频高清1 | 伊人婷婷久久 | 国产福利一区二区在线 | 亚洲清纯国产 | 99久久爱| 午夜婷婷在线播放 | 久久久久久久久毛片精品 | 麻豆av电影 | 国产精品永久免费 | 亚洲aⅴ久久精品 | 热re99久久精品国产99热 | 亚洲人成影院在线 | 久久综合导航 | 欧美激情另类 | 久久99亚洲热视 | 午夜在线免费观看视频 | 中文在线免费观看 | 国产精品video | 久久成人在线 | 91在线蜜桃臀| 91精品国产三级a在线观看 | 日韩精品一区二区三区丰满 | 免费视频一级片 | 伊人五月婷 | 久草com | 中文字幕乱码在线播放 | av解说在线 | 69国产精品视频免费观看 | 久久一区二区三区国产精品 | 人人射网站 | 九九国产精品视频 | 精品国产片 | 国产精品永久在线观看 | 国产网红在线 | 久草在线手机观看 | 超碰在线免费97 | av线上看 | 国产精品一区二区三区电影 | 中文字幕免费观看 | 欧美精品一区二区蜜臀亚洲 | 天天色欧美| 国产亚洲va综合人人澡精品 | 国内精品视频一区二区三区八戒 | 日韩在线观看影院 | 精品视频在线看 | 人人爽人人爽人人片 | 亚洲欧美视频网站 | 91av播放 | 国产精品色 | 久久成人在线视频 | 在线观看黄网站 | 在线色吧| 亚洲午夜av电影 | 国产高清视频在线免费观看 | 中文字幕在线播放一区 | 中文字幕在线观看视频一区二区三区 | 天天操天天射天天 | 国产成人一区二区在线观看 | 欧美日韩二三区 | 国产99久久久精品 | 亚洲精品在线国产 | 精壮的侍卫呻吟h | 久久国产精品99久久人人澡 | 国产精品 日韩精品 | 亚州av成人 | 国产成人在线播放 | 国产又粗又硬又长又爽的视频 | 日日干夜夜爱 | 亚洲电影一区二区 | 91九色蝌蚪在线 | 国产精品久久久久久久久久久久久久 | 国产精品12 | 国产黄色精品视频 | 亚洲综合色激情五月 | 午夜在线看片 | 免费看的av片 | a'aaa级片在线观看 | 亚洲伊人成综合网 | 精品国产精品国产偷麻豆 | 国产va饥渴难耐女保洁员在线观看 | 福利视频一区二区 | 日本不卡一区二区三区在线观看 | 日本久久成人 | 亚洲精品视频在线观看免费 | 成人超碰97| 美女免费视频观看网站 | 日日操天天爽 | 美女激情影院 | 亚洲aⅴ在线| 91豆花在线观看 | 中文字幕第一页在线视频 | 国产精品一区欧美 | 国产小视频在线播放 | 久久久91精品国产一区二区三区 | 草在线| 岛国av在线 | 国产精品情侣视频 | 色噜噜噜噜 | 伊人宗合网| 亚洲韩国一区二区三区 | 亚洲美女精品区人人人人 | av一本久道久久波多野结衣 | 97品白浆高清久久久久久 | 蜜臀av一区 | 精品v亚洲v欧美v高清v | 久久精品一| 婷婷六月天天 | 日韩精品不卡 | 免费日韩一区二区三区 | 亚洲婷婷伊人 | 精品视频久久 | 精品国产一区二区三区免费 | 中文成人字幕 | 国产女人免费看a级丨片 | 中文字幕二区在线观看 | 久久国产精品99国产 | 国产 中文 日韩 欧美 | 91精品视频在线 | 国产呻吟在线 | 深夜免费福利视频 | 国产成人在线观看免费 | 午夜av免费在线观看 | 伊人成人激情 | 亚洲男男gaygay无套 | avav99| 亚洲成a人片综合在线 | 国产精品video爽爽爽爽 | 精品视频| 久久久久免费精品视频 | 999视频在线播放 | 国产日韩精品一区二区三区在线 | 欧美男女爱爱视频 | 免费日韩av电影 | 久久久久久国产一区二区三区 | 久久成人综合视频 | 婷婷五月色综合 | 97看片吧| av电影免费在线 | 日日狠狠 | 日韩视频中文字幕在线观看 | 天天射天天做 | 国产九色在线播放九色 | 欧美一级日韩三级 | 久草视频99 | 国产精品久久久久9999 | 九九热精品国产 | 国产亚洲精品久久久久动 | 美女很黄免费网站 | 国产精品视频全国免费观看 | 九九热在线播放 | 精品一区 精品二区 | 国产香蕉视频在线观看 | 视频一区二区视频 | 欧美另类色图 | 国产69精品久久app免费版 | 欧美韩日在线 | 超碰国产人人 | 成人三级网站在线观看 | 日韩a在线 | 美女免费网站 | 激情网五月婷婷 | 国产破处视频在线播放 | 国语久久 | 久久九九国产精品 | 欧美一级片在线免费观看 | 欧日韩在线 | 久久人人爽人人片av | 又黄又爽又刺激的视频 | 在线视频 成人 | 亚洲综合视频在线观看 | 超碰97免费观看 | 婷婷国产一区二区三区 | 久久精品九色 | 久久夜色网 | 国内精品久久久久影院一蜜桃 | 成人国产精品久久久春色 | 国产天天爽 | 久久人91精品久久久久久不卡 | 亚洲国产精品一区二区尤物区 | 九九久久影视 | 91正在播放| 国产一区精品在线观看 | 人人艹人人 | 在线观看av黄色 | 中文字幕人成人 | a'aaa级片在线观看 | 成人h视频在线 | 91av电影在线 | 国产又粗又猛又爽又黄的视频免费 | 激情片av| 97中文字幕 | 亚洲精品国偷自产在线99热 | 西西www444| 久久国产一区二区三区 | 久久伦理影院 | 国产麻豆成人传媒免费观看 | 亚洲伦理精品 | 免费网站观看www在线观看 | 91成品视频 | 免费视频资源 | 成人免费视频观看 | 99re国产| 国产亚洲精品久久久久5区 成人h电影在线观看 | 伊人伊成久久人综合网站 | 黄色av影院 | 四虎免费av | 日韩剧情 | 黄色不卡av | 日韩视频一区二区 | 欧美一级日韩三级 | 超碰在线观看av.com | 欧美精品一区二区免费 | 97偷拍在线视频 | 久久人人97超碰精品888 | 黄色一级影院 | 麻豆视频免费在线播放 | 欧美一级特黄高清视频 | 久久免费精彩视频 | 婷婷色五 | 亚洲韩国一区二区三区 | 毛片无卡免费无播放器 | 成人黄色电影在线播放 | 日韩欧美在线免费观看 | 久久亚洲私人国产精品va | 久久黄色小说视频 | 日本公妇在线观看高清 | 欧美久久影院 | 尤物九九久久国产精品的分类 | 精品v亚洲v欧美v高清v | 中文字幕国产一区 | 97成人免费视频 | 亚洲综合激情五月 | 91av社区| 99视频偷窥在线精品国自产拍 | 最近中文字幕国语免费高清6 | a级片久久久| 久久蜜臀av | 成人av片在线观看 | www.黄色片网站 | 波多野结衣最新 | 亚洲欧美成人在线 | 极品美女被弄高潮视频网站 | 丁香久久婷婷 | 97视频在线观看播放 | 超碰97公开 | 国产精品白丝jk白祙 | 五月天久久婷 | 99精品国产99久久久久久福利 | 另类老妇性bbwbbw高清 | 在线色亚洲 | 免费在线h| 国产精品久久久久久久婷婷 | 婷婷在线五月 | 中文永久免费观看 | 91九色老| 天天色天天搞 | 日韩av网址在线 | 九色一区二区 | 久久色在线观看 | 国产高清一 | 久久理论视频 | 国产片网站 | 日韩免费电影网站 | 91九色视频 | 久久av在线 | 国产精品毛片一区视频播 | 国产一区二区三区高清播放 | 国产精品视频永久免费播放 | 综合网五月天 | aⅴ视频在线| 麻花天美星空视频 | av中文字幕在线观看网站 | 99视频精品全国免费 | 久草国产视频 | 国产精品无av码在线观看 | 亚洲精品综合欧美二区变态 | 国产精品二区在线观看 | 啪啪av在线 | 中文字幕有码在线播放 | 久久ww | 91在线精品播放 | 天天干天天操天天做 | 夜夜操天天 | 少妇性bbb搡bbb爽爽爽欧美 | 久久香蕉影视 | 在线免费黄色av | 在线看一区 | 色综合色综合久久综合频道88 | 成人小视频在线观看免费 | 一区二区三区污 | 91久久爱热色涩涩 | 99精彩视频| 日韩xxxbbb| 成人在线视频免费看 | av噜噜噜在线播放 | www.婷婷色 | 久久综合九色综合欧美狠狠 | 亚洲精品久久激情国产片 | 日韩欧美v| 中文字幕精 | aaa毛片视频 | 美女黄频| www看片网站 | 99re久久资源最新地址 | 国产一级黄色av | 99久久99久久综合 | 亚洲精品网站 | 一区二区三区在线视频观看58 | 免费在线黄 | 天天天操天天天干 | 四虎影视成人精品国库在线观看 | 日韩影视在线 | 日本三级在线观看中文字 | 在线看v片 | 免费看一级特黄a大片 | 天天插天天色 | 99精品视频免费全部在线 | 国产在线中文 | 人人草人人草 | 视频三区| 午夜精品一区二区三区在线视频 | 久久97久久| 黄色视屏av | 精品国产一区二区三区蜜臀 | 日韩精品中文字幕在线播放 | 伊人永久 | 中文字幕在线免费观看 | 国产精品久久久久影院 | 久久精品久久精品久久 | 麻豆传媒视频在线 | 日韩激情中文字幕 | 婷婷六月综合网 | 久久国产精品精品国产色婷婷 | 色七七亚洲影院 | 亚洲少妇自拍 | 91成人精品一区在线播放 | 一区二区三区四区久久 | 国产专区在线看 | 国产最新在线 | www日韩精品| 亚洲精品自拍视频在线观看 | 在线视频精品播放 | 爱爱av网| 91视频免费播放 | 欧美日韩91 | 亚洲一区网站 | 911精品视频 | 手机在线日韩视频 | 国产午夜一级毛片 | 91精品久久久久久综合五月天 | 亚洲视频大全 | 蜜臀久久99精品久久久酒店新书 | 91av视屏 | 国产在线播放一区二区三区 | 狠狠狠综合 | 四虎国产精品免费观看视频优播 | 四虎视频| 久久国语露脸国产精品电影 | 激情婷婷综合网 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 五月激情婷婷丁香 | 在线91色| 在线视频麻豆 | 蜜臀一区二区三区精品免费视频 | 日韩一三区 | 99久久99久久 | 麻豆一精品传二传媒短视频 | 日日摸日日碰 | 亚洲一级片在线看 | 久久久久久久久久免费视频 | 久久爱www. | 亚洲成人黄色在线观看 | 色婷婷电影 | 高清有码中文字幕 | 狠狠色婷婷丁香六月 | 日韩高清一区在线 | 国产精品大全 | 中文字幕av网站 | 美女视频a美女大全免费下载蜜臀 | 亚洲久草网 | 国产 视频 久久 | 91精品视频在线免费观看 | 久久久久久久久久久久亚洲 | 91精品国产自产91精品 | 国产精品h在线观看 | 成人h在线 | 中文字幕国产视频 | 国产成人久久77777精品 | 免费在线观看一区二区三区 | 国产伦理一区二区三区 | 国产黄在线观看 | 成年人免费电影在线观看 | 狠狠88综合久久久久综合网 | 99久视频| av高清免费| 免费黄色在线播放 | 久久久久女人精品毛片 | 国产高清视频在线播放一区 | 五月婷婷六月丁香激情 | 免费精品| 国产在线视频在线观看 | 午夜久久影视 | 亚洲激情 在线 | 夜夜操天天干 | 中文字幕日本在线观看 | 日躁夜躁狠狠躁2001 | 精品国产成人在线影院 | 91精品视屏 | 久久免费视频这里只有精品 | 精品国产aⅴ麻豆 | 日本aaaa级毛片在线看 | 国产小视频在线免费观看视频 | 久久久男人的天堂 | 麻花豆传媒mv在线观看 | 成人在线电影观看 | 亚洲天堂网视频 | 福利一区二区三区四区 | 国产成人精品不卡 | 亚洲1区 在线 | 三级av在线免费观看 | 国产 在线观看 | 国产一区私人高清影院 | 久久艹人人 | 欧美成人黄色 | 色偷偷88888欧美精品久久 | 中文字幕观看在线 | 亚洲精品国产精品国自产在线 | 在线观看aa| 超碰在线资源 | 国产九九在线 | 日日躁你夜夜躁你av蜜 | av成人黄色 | 免费亚洲黄色 | 亚洲精品黄色在线观看 | 久久久69 | 亚洲天堂网视频在线观看 | 国产精品99久久久精品 | www.色国产 | 久久97精品| 日本精品小视频 | 天堂网av 在线 | 天天插夜夜操 | 91视频一8mav | 国产精品一区二区在线 | 国产高清视频在线观看 | 国产一区二区观看 | 成人午夜电影网 | 狠狠色丁婷婷日日 | 97在线看 | 色吊丝在线永久观看最新版本 | 婷婷丁香国产 | 久久精品婷婷 | 色网免费观看 | 国产亚洲欧美在线视频 | 国产区网址 | 久久久久高清 | 国产成人一二三 | 成人国产精品 | 夜夜躁日日躁狠狠躁 | 婷婷香蕉 | av导航福利 | 色99之美女主播在线视频 | www.五月激情.com | 中文字幕在线播放av | 日韩精品不卡在线 | 三日本三级少妇三级99 | 最新国产在线 | 免费看成人片 | 久草在线视频在线观看 | 亚洲乱码国产乱码精品天美传媒 | 中文字幕av最新 | 99久久www | 夜夜视频资源 | 成人av电影免费在线播放 | 成人黄色免费观看 | 久久成熟 | 婷婷五月情 | 欧美日韩精品在线视频 | 婷婷 中文字幕 | 在线 成人 | av综合站 | 99精品在线直播 | 超碰公开在线观看 | 免费看av在线 | 国产高清在线一区 | 97视频免费在线 | 久爱精品在线 | 国产精品 999 | 国产男女无遮挡猛进猛出在线观看 | 久久精品网站免费观看 | 久久亚洲福利视频 | 欧美精品乱码久久久久久 | 国产精品视频免费在线观看 | 国产高清视频在线播放一区 | 亚洲国产美女精品久久久久∴ | 蜜臀av性久久久久蜜臀av | 亚洲最大在线视频 | 在线视频 国产 日韩 | 日日夜夜亚洲 | 中文字幕第一页av | 午夜精品久久久久久中宇69 | 国产小视频在线观看 | 在线免费黄色片 | 中文字幕 影院 | 国产一区欧美日韩 | 亚洲成人动漫在线观看 | 免费亚洲精品视频 | 国产综合在线观看视频 | 麻豆影视网 | 99国产精品免费网站 | 国产精品美女久久久久久免费 | 在线91观看 | 中文字幕成人网 | 国产精品18毛片一区二区 | 日韩免费小视频 | 欧美国产视频在线 | 99麻豆久久久国产精品免费 | 天天草天天干天天 | 黄色小说18 | 九七在线视频 | 99免费| 日本三级不卡 | 免费看片成年人 | 日韩美视频 | 97超碰人人在线 | 国产69久久精品成人看 | 亚洲色图 校园春色 | av福利超碰网站 | 色人久久 | 色资源网免费观看视频 | 欧美日韩aa| 少妇资源站 | 99精品视频99 | 香蕉视频4aa | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 在线黄色国产电影 | 在线观看小视频 | 久久综合爱 | 中文字幕在线观看免费观看 | 伊人五月| 九九热中文字幕 | 日韩免费一区二区三区 | 国产黄色美女 | 99精品美女 | 91成人天堂久久成人 | 4438全国亚洲精品观看视频 | 国产最新在线视频 | 亚洲国产精品成人女人久久 | 国产麻豆精品免费视频 | 亚洲码国产日韩欧美高潮在线播放 | 五月婷社区 | 国产在线观看a | 丁香五月缴情综合网 | 国产中文字幕第一页 | 国产91精品看黄网站 | 欧美 日韩 性 | 国产一区电影在线观看 | 国产理论一区二区三区 | 亚洲综合小说电影qvod | 欧美在线视频免费 | 久久影院一区 | 国产精品麻豆三级一区视频 | 日韩精品亚洲专区在线观看 | 国产精品视频app | 日韩精品一区二区免费视频 |