国产精品久久久久影院老司_亚洲福利在线视频_中国女警察一级毛片视频_亚洲一区在线免费视频_久久亚洲第一_狠狠干五月

蜜蜂職場文庫 > 面試技巧 >

三大框架面試題

時間: 小龍 面試技巧

  三大框架面試題目有哪些呢?面試前對面試題目做好準備對面試很有利,以下是小編幫你們整理的三大框架面試題,一起來學習啦。

  三大框架面試題篇一

  一、Spring依賴注入的3種實現方式是什么?

  依賴注入的3種實現方式分別是:接口注入(interface injection)、Set注入(setter injection)和構造注入(constructor injection)。接口注入指的就是在接口中定義要注入的信息,并通過接口完成注入。其具體步驟包括(1)編寫一個接口,各種數據的注入將通過這個接口進行。(2)任何想要使用數據的類都必須實現這個接口 。Set注入指的就是在接受注入的類中定義一個Set方法,并在參數中定義需要注入的元素。構造注入指的就是在接受注入的類中定義一個構造方法,并在參數中定義需要注入的元素。

  二、SSH 框架配置流程是什么?

  1.創建java web項目:添加struts包:freemarker,ognl,struts2-core,struts2-spring-plugin,xwork-core,commons-fileupload、commons-io、 commons-lang等 ;添加spring包:spring-aop、spring-aspects、spring-beans、spring-context、spring-core、spring-jdbc、spring-orm、spring-web等;添加hibernate包:hibernate-core等;添加其他包:ojdbc等

  2.配置struts(1)配置struts核心過濾器。打開web.xml,配置struts核心過濾器和過濾器映射。(2)建立Action,繼承ActionSupport類。(3)配置action。在struts.xml文件中,添加對Action的配置。包含等元素的配置(4)新建視圖頁面

  3.配置hibernate:(1)建立數據庫與數據表(2)創建持久層實體類及映射文件(3)編寫數據訪問類,集成HibernateDaoSupport父類

  4.配置spring:(1)配置applicationContext.xml文件,配置spring會話工廠bean,數據訪問bean ,業務bean和action bean等。(2)引入aop和tx命名空間,配置聲明式事務(3)配置web.xml,添加Spring監聽器和context-param初始化參數,告知監聽器applicationContext.xml的位置。

  三、Struts的運行機制是什么

  1、客戶端初始化一個指向Servlet容器(例如Tomcat)的請求;

  2、這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于Struts2和其他框架的集成很有幫助,例如:SiteMesh Plugin);

  3、接著StrutsPrepareAndExecuteFilter被調用,StrutsPrepareAndExecuteFilter詢問ActionMapper來決定這個請求是否需要調用某個Action

  4、如果ActionMapper決定需要調用某個Action,StrutsPrepareAndExecuteFilter把請求的處理交給ActionProxy;

  5、ActionProxy通過Configuration Manager詢問框架的配置文件,找到需要調用的Action類;

  6、ActionProxy創建一個ActionInvocation的實例。

  7、ActionInvocation實例使用命名模式來調用,在調用Action的過程前后,涉及到相關攔截器(Intercepter)的調用。

  8、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是 (但不總是,也可能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2 框架中繼承的標簽。在這個過程中需要涉及到ActionMapper。

  四、說說IOC和AOP的概念以及在Spring中是如何應用的

  1.控制反轉(Inversion of Control,英文縮寫為IoC)是一個重要的面向對象編程的法則來削減計算機程序的耦合問題,也是輕量級的Spring框架的核心。 控制反轉一般分為兩種類型,依賴注入(Dependency Injection,簡稱DI)和依賴查找(Dependency Lookup)。依賴注入應用比較廣泛。

  2.AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程,通過預編譯方式和運行期動態代理實現程序功能的統一維護的一種技術。AOP是OOP的延續。利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。

  3.IOC是典型的工廠模式,而AOP則是典型的代理模式的體現。spring的IoC容器是spring的核心,spring AOP是spring框架的重要組成部分

  4.在spring中ioc最典型的應用就是整合并管理各個組件,如整合ssh時,spring可以管理datasource,sessionfactory,dao,service,action等bean,這些傳統開發方式中均是由硬編碼的方式實現;而aop則在spring中表現為各種通知,spring提供了諸如MethodBeforeAdvice,AfterReturningAdvice,AfterThrowingAdvice等API,并在spring提供的聲明式事務中也提供了相應的tx命名空間,利用aop簡化事務配置

  三大框架面試題篇二

  一、Struts中mvc中分別使用的什么技術?

  1.在Action的實現方面,而Struts2中可以是一個POJO。Struts2支持通過攔截器堆棧為每一個Action創建不同的生命周期,其中攔截器在AOP(Aspect-Oriented Programming)中用于在某個方法或字段被訪問之前或之后加入某些操作

  2.線程模型方面,Struts2的Action是一個請求對應一個實例(每次請求時都新new出一個對象),沒有線程安全方面的問題。

  3.Servlet依賴方面,Struts2中的Action不再依賴于Servlet API,有利于測試,并且實現TDD。

  4.封裝請求參數,Struts2可以選擇使用POJO類來封裝請求的參數,或者直接使用Action的屬性。

  5.表達式語言方面,Struts2整合了OGNL(Object Graph NavigationLanguage)。

  6.綁定值到視圖技術,Struts2使用“ValueStack”技術。

  7.類型轉換,Struts2中使用OGNL進行轉換,可以更方便的使用。

  8.Struts2支持重寫validate方法或者使用XWork的驗證框架。同時也很好的使用了Java的國際化機制

  二、Spring是怎么實現事務處理的?

  Spring 提供兩種事務處理方式,一種是編程式事務處理;一種是聲明式事務處理。其中編程式事務處理使用TransactionTemplate進行事務處理(Spring進行commit和rollback)。而Spring 的聲明式事務處理,可以說是 Spring AOP的一種實現。

  因為事務處理是所謂方面( Aspect )的一個子集。因此默認情況下,事務處理是利用 Java動態代理機制實現的,這樣就必須先定義一個接口,然后再編寫實現;而對于沒有接口的 Javabean ,則通過 CGLIB 實現。這部分是 SpringAOP 部分的內容。

  其實就是在執行某個業務方法之前添加了tx.beginTran()事務開啟,若沒有異常,業務方法執行完畢后添加了tx.commitTran()事務提交。若有異常拋出,則添加了tx.rollbackTran();事務回滾。

  使用Spring?AOP進行事務控制需要具備一定的規則,若是開發人員的業務Service或者說業務Service中的業務方法命名不按照事前定義好的規則進行命名的話,AOP是攔截不到的。

  三、談談Hibernate的緩存機制

  Hibernate的緩存包括Session的緩存和SessionFactory的緩存,其中SessionFactory的緩存又可以分為兩類:內置緩存和外置緩存。Session的緩存是內置的,不能被卸載,也被稱為Hibernate的第一級緩存。

  SessionFactory的內置緩存和Session的緩存在實現方式上比較相似,前者是SessionFactory對象的一些集合屬性包含的數據,后者是指Session的一些集合屬性包含的數據。SessionFactory的內置緩存中存放了映射元數據和預定義SQL語句,映射元數據是映射文件中數據的拷貝,而預定義SQL語句是在Hibernate初始化階段根據映射元數據推導出來,SessionFactory的內置緩存是只讀的,應用程序不能修改緩存中的映射元數據和預定義SQL語句,因此SessionFactory不需要進行內置緩存與映射文件的同步。

  SessionFactory的外置緩存是一個可配置的插件。在默認情況下,SessionFactory不會啟用這個插件。外置緩存的數據是數據庫數據的拷貝,外置緩存的介質可以是內存或者硬盤。SessionFactory的外置緩存也被稱為Hibernate的第二級緩存。

  四、MyBatis和Hibernate有什么區別

  1)MyBATIS非常簡單易學,Hibernate相對較復雜,門檻較高。

  2) 二者都是比較優秀的開源產品。但Hibernate現在已經是主流O/R Mapping框架,從文檔的豐富性,產品的完善性,版本的開發速度都要強于MyBatis。

  3) 當系統屬于二次開發,無法對數據庫結構做到控制和修改,那MyBatis的靈活性將比Hibernate更適合。

  4) 系統數據處理量巨大,性能要求極為苛刻,在這種情況下MyBatis會有更好的可控性和表現。因為MyBatis比Hibernate更容易進行sql的優化。

  5) MyBatis 可以進行細粒度的優化,減少與數據庫的交互,對于性能的提升是非常重要。

  6) MyBatis需要手寫sql語句,也可以生成一部分,Hibernate則基本上可以自動生成,偶爾會寫一些Hql。如果涉及到數據庫字段的修改,Hibernate修改的地方很少。

  7) 開發方面:開發效率上,兩者差不多 ;可維護性方面,MyBatis更好一些。

  8) 運行效率:在不考慮cache的情況下,MyBatis應該會比hibernate快一些或者很多(根據實際情況會有所不同)。

  9) 對不同數據庫類型的支持。MyBatis對不同數據庫類型的支持不夠好,如果你要開發的系統是要在對中數據間移植,那可能用hibernate比較好。

  10)對缺省的cache支持。MyBatis對缺省的cache支持不夠好,但是hibernate的cache支持其實也不是很好,而且很復雜。尤其是對于大并發量的應用。

  五、Hashmap和Hashtable的區別

  1 HashMap不是線程安全的,hastmap是將鍵映射到值的對象,其中鍵和值都是對象,并且不能包含重復鍵,但可以包含重復值。HashMap允許null key和null value,而hashtable不允許。

  2 .HashTable是線程安全的一個Collection。HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map接口,主要區別在于HashMap允許空(null)鍵值(key),由于非線程安全,效率上可能高于Hashtable。

  HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。

  HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。

  Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。

  最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。

  Hashtable和HashMap采用的hash/rehash算法都大概一樣,所以性能不會有很大的差異

  三大框架面試題篇三

  1.你對spring的理解是什么?

  1)開源框架

  2)IoC(控制反轉),將類的創建和依賴關系寫在配置文件里,由配置文件注入,實現了松耦合

  3)AOP 將安全,事務等于程序邏輯相對獨立的功能抽取出來,利用spring的配置文件將這些功能插進去,實現了按照方面編程,提高了復用性。

  或者答概念Spring是一個輕型容器(light-weight container),其核心是Bean工廠(Bean Factory),用以構造我們所需要的M(Model)。在此基礎之上,Spring提供了AOP(Aspect-Oriented Programming, 面向層面的編程)的實現,用它來提供非管理環境下申明方式的事務、安全等服務;對Bean工廠的擴展ApplicationContext更加方便我們實現J2EE的應用;DAO/ORM的實現方便我們進行數據庫的開發;Web MVC和Spring Web提供了Java Web應用的框架或與其他流行的Web框架進行集成。

  2.Spring框架有哪幾部分組成?

  Spring 核心容器(Core):提供Spring框架的基本功能。核心容器的主要組件是BeanFactory,她是工廠模式的實現。BeanFactory使用控制反轉(Ioc)模式將應用程序的配置和依賴性規范與實際的應用代碼程序分開。

  Spring AOP:通過配置管理特性,Spring AOP模塊直接面向方面的編程功能集成到了Spring框架中,所以可以很容易的使Spring框架管理的任何對象支持 AOP。Spring AOP模塊為基于Spring的應用程序中的對象提供了事務管理服務。通過使用Spring AOP,不用依賴于EJB組件,就可以將聲明性事務管理集成到應用程序中。

  Spring ORM:Spring框架集成了若干ORM框架,從而提供了ORM的對象關系工具,其中包括 JDO、Hibernate、iBatis和TopLink。所有這些都遵從Spring的通用事務和DAO異常層結構。 Spring DAO:JDBC DAO抽象層提供了有意義的異常層次的結構,可用該結構來管理異常處理和不同數據供應商拋出的異常錯誤信息。異常層次結構簡化了錯誤處理,并且大大的降低 了需要編寫的異常代碼數量(例如,打開和關系連接)。Spring DAO的面向JDBC的異常遵從通用的DAO異常層結構。

  Spring WEB:Web上下文模塊建立在上下文模塊(Context)的基礎之上,為基于Web服務的應用程序提供了上下文的服務。所以Spring框架支持 Jakarta Struts的集成。Web模塊還簡化了處理多部分請求及將請求參數綁定到域對象的工作。

  Spring上下文(Context):Spring上下文是一個配置文件,向Spring框架提供上下文信息。Spring上下文包括企業服務,例如 JNDI、EJB、電子郵件、國際化校驗和調度功能。

  Spring MVC:Spring的MVC框架是一個全功能的構建Web應用程序的MVC實現。通過策略接口,MVC框架變成為高度可配置的,MVC容納的大量視圖技術,包括JSP、Velocity、Tiles、iText和Pol

  3.IOC的優點是什么?

  IOC 或依賴注入把應用的代碼量降到最低。它使應用容易測試,單元測試不再需要單例和JNDI查找機制。最小的代價和最小的侵入性使松散耦合得以實現。IOC容器支持加載服務時的餓漢式初始化和懶加載。

50060 主站蜘蛛池模板: 欧美综合在线观看视频 | 成人不卡免费视频 | 久久久久国产成人精品亚洲午夜 | 农村少妇吞精夜夜爽视频 | 国产女同玩人妖 | 国产精品久久久久久久久久久久久久久久 | 日韩精品免费一区二区三区 | 91女上位 在线播放 性欧美日本 | 草人人| 在线成人免费视频 | 中国字幕av | 羞羞视频在线免费 | xp123精品视频 | 免费观看黄视频 | 欧美电影在线观看 | 老a影视网站在线观看免费 国产精品久久久久久久久久尿 | 日本在线免费观看视频 | 91精品国产99久久久久久红楼 | 91麻豆精品国产91久久久更新资源速度超快 | 黄网站在线免费看 | 久久久精品视频免费 | 亚洲一区中文字幕 | 久久老司机| 久久久久久久一区二区三区 | 成人午夜免费在线视频 | 日韩欧美高清片 | 亚洲第一视频 | 黄色片小说 | 久久久国产精品成人免费 | 羞羞的视频在线免费观看 | 九一国产精品 | 九九热视频这里只有精品 | 亚洲精品免费播放 | 国产精品久久久久久久久久10秀 | 国产精品美女久久久久久不卡 | 欧美 日韩 三区 | 亚洲综合视频网 | 在线观看中文字幕av | 黄色特级视频 | japanese javhd| 成人免费看毛片 |