Spring筆試考試題目_第1頁
Spring筆試考試題目_第2頁
Spring筆試考試題目_第3頁
Spring筆試考試題目_第4頁
Spring筆試考試題目_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、Spring筆試考試題目考生姓名:_ 考生班級:_ 評分:_一:填空(總分20分)1.1: Spring 的框架是一個_輕量級_容器,以_IOC_模式作為核心,從而可以實現(xiàn)應用程序組件的_松散耦合 _結構,讓應用程序組件可以容易進行測試。1.2: Spring中實現(xiàn)IoC模式的方法都有_注入依賴_, _java注解_, _schema XML方式 _, _serviceLocator_。1.3: Spring中基于Web的ApplicationContext下可以用到的特有的Bean的作用域都有_request _, _session _, _globalsession _。1.4: Spri

2、ng中的AOP術語的全稱是_面向切面編程_(中文)、_aspect-OrientedProgramming_(英文),在Spring中它的實現(xiàn)機制是采用_動態(tài)代理_實現(xiàn)的。1.5:在Spring AOP中,Advice(增強)被應用至對象之上的過程稱之為_縫合_(中英文都填),其選擇時機有幾個時間點,分別是:_編譯_時期、_類別加載_時期、和_執(zhí)行_時期。1.6:配置Spring中的AspectJ時,需要配置_<aop-aspecrJ-autoproxy>_標簽,以便AOP框架自動使用增強; 該標簽有一個proxy-target-class屬性,默認為_false_,表示使用_jd

3、k動態(tài)代理治入增強_代理方式,當配置為<aop:aspectj-autoproxy proxy-target-class=_true_ />時,表示使用_cglib動態(tài)代理技術治入增強_代理方式。1.7:在Spring AOP中,我們可以通過_pointcut_注解對切點表達式進行命名。1.8:Spring AOP中,在“進入”連接點的情況下,_最高_優(yōu)先級的增強會先執(zhí)行;在“退出”連接點的情況下,_最高_優(yōu)先級的增強會最后執(zhí)行;對于定義在相同切面的增強,根據(jù)_聲明的順序_來確定執(zhí)行順序。1.9:使用Schema XML配置Spring AOP時,<aop:config>

4、;, <aop:aspect>和<aop:advisor>,三者在配置有先后順序要求,要求的順序分別是:_<aop:config>_, _<aop:advisor>_,_<aop:aspect>_。1.10:Spring事物管理中,重要的三個概念分別是_transactiondefinition_ ,_transactionStatus _,_platformtransactiomanger _。二:選擇(注意:單選或者多選混選)(總分20分)2.1:可以實現(xiàn)IoC (Inversion of Control) 模式的方法都有哪些?_

5、ABCD_A:依賴注入(Dependency Injection)B:Service LocatorC:Java 注解D:Schema XML方式2.2:Spring中Bean的自動裝配都有哪些選擇? _ABCD_A:By TypeB:By NameC:NoD:Constructor方式E:Autodetect方式2.3:Spring中ApplicationContext能夠用到的Bean的作用域都有哪些? _ABC_A:SingletonB:PrototypeC:SessionD:Response2.4:我們學習過的Abstract Factory,Prototype,Singleton模式

6、按照設計模式的分類都屬于哪種? _AD_A:創(chuàng)建型設計模式 B:結構型設計模式C:行為型設計模式D:對象范圍的設計模式2.5:Bean的基本配置中,如果有諸如List,Set,Map和Properties的屬性,那么可以通過下述哪些對應的標簽來配置? _ABCD_A:<list/>B:<set/>C:<map/>D:<props/>2.6:Spring的AOP的動態(tài)代理機制都有哪些? _AB_A:CGLib庫B:JDK動態(tài)代理C:Proxy代理D:Auto代理2.7:Spring中的AspectJ切點表達式函數(shù)都有哪些? _ABCD_A:方法切點

7、函數(shù)B:方法入?yún)⑶悬c函數(shù)C:目標類切點函數(shù)D:代理類切點函數(shù)2.8:說明下面切面類的增強實施到業(yè)務方法int foo(String name)時,其增強各自執(zhí)行后結果是什么?Aspectpublic class AspectWithMultipleAdviceDeclarations Pointcut("execution(* foo(.)") public void fooExecution() Before("fooExecution()") public void doBeforeOne() / . Before("fooExecutio

8、n()") public void doBeforeTwo() / . AfterReturning("fooExecution()") public void doAfterOne() / . AfterReturning("fooExecution()") public void doAfterTwo() / . _ebadc_(注意順序)A:fooB:doBeforeTwoC:doAfterTwoD:doAfterOneE:doBeforeOne2.9:下面哪些不支持切點中的通配符,如+, ., 和*? _abcd_A:args()B:w

9、ithin()C:target()D:annotation()2.10:下面哪個是Spring AOP中的引介增強? _E_A:BeforeB:AfterReturningC:AroundD:AfterThrowingE:DeclareParents三:判斷對錯(總分30分)3.1:Spring中,我們可以選擇DBCP,C3P0來配置數(shù)據(jù)源。 ( T )3.2:在Bean的基本配置中,如果某個Bean屬性要默認為空,我們可以利用將該屬性設置為null來實現(xiàn);如<bean class="ExampleBean"><property name="em

10、ail">null</property></bean ( F )3.3:在配置Bean時,內(nèi)部Bean中的singleton標記及id或name屬性將不會被忽略,內(nèi)部bean總是匿名的且它們總是prototype模式的。同時將內(nèi)部bean注入到包含該內(nèi)部bean之外的bean也是可能的。(F )3.4:下面配置的Bean,Spring會在啟動時,IoC容器默認會將該bean提前進行實例化。<bean id="lazy" class="com.foo.ExpensiveToCreateBean" lazy-init=

11、"true"><!- various properties here. -></bean> (F )3.5:Spring中配置的Bean,要么只能都用Autowire自動裝配,要么都不用Autowire自動裝配。( F )3.6:在Spring中,大多數(shù)配置的Bean都是Prototype類型的,并且Spring會對Prototype類型的Bean負責其整個生命周期的。 ( F )3.7:切點表達式中的通配符“+”:其含義表示按類型匹配指定類的所有類,僅能跟在類名后面。( T ) 3.8:Spring的AOP中,用注解表示的后置增強是After

12、。 ( F )3.9:Spring的AOP中,定義在不同的切面里的兩個增強都需要在一個相同的連接點中運行,那么除非我們顯式指定,否則執(zhí)行的順序是未知的。 ( T )3.10:Spring AOP中,Advisor是切點和增強的復合體,它可以包含多個切點和增強。( F )3.11:Spring的AOP中,切點綁定增強方法時,是按名字匹配的,但是在綁定連接點時,是按參數(shù)順序匹配的。 ( T )3.12:使用Spring統(tǒng)一的DAO異常體系時,如果訪問數(shù)據(jù)資源時失敗,如無法獲取數(shù)據(jù)連接,無法獲取Hibernate的會話等,我們可以捕獲ConcurrencyFailureException類型的異常。

13、 ( F ) 3.13:Spring中,如果我們的持久層采用Spring提供的模板類來實現(xiàn),為了要使持久層的方法是多線程安全的,我們可以選擇繼承Spring提供的支持類xxxSupport。 ( F )3.14:Spring AOP中,不僅支持方法上的連接點,還支持屬性上的連接點。 ( F )3.15:Spring中,持久層、業(yè)務層的Bean一般是加載到Spring容器中的根容器,而為融合Struts框架設計的Action Bean一般是加載到子容器中的;父容器是可以訪問子容器中的Bean元素的。 ( F ) 四:問答題(總分20分)4.1:請闡述Spring框架和EJB相比較,各自的優(yōu)缺點?

14、Spring核心是依賴注入模式spring可以隨時測試EJB測試非常麻煩EJB3,0是一個標準的框架4.2:在Spring IoC核心模式中,試比較三種推薦的依賴注入方式的相同點和不同點?4.3:請解釋你所理解的AOP中的如下概念:增強、切入點、連接點、切面,并說明它們之間的關系。以及Spring的AOP框架是如何用這些概念搭建并實現(xiàn)的,請闡述你的理解?4.4:說明你Spring中Bean的各種生命周期的理解?4.5:這里為下面的業(yè)務類方法編寫了兩個切面類,每個切面類中分別定義了一些增強方法,請完成下面的問題。/業(yè)務類定義package com.cstp;public class NaiveW

15、aiter implements Waiterpublic void greetTo(String clientName)System.out.println("NaiveWaiter:greet to "+clientName+".");public void serveTo(String clientName, int times)System.out.println("NaiveWaiter:serving "+clientName+”+times+".");/第一個切面類的定義package com.cst

16、p.aspectj.aspectj;import org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;Aspect public class PreGreetingAspectBefore("execution(*greetTo(.)")public void beforeGreeting()System.out.println("How are you?");/第二個切面類的定義package com.cstp.aspectj.advanced;imp

17、ort org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before;Aspectpublic class BeforeAspectBefore("target(com.cstp.NaiveWaiter) && args(name, num, .)")public void bindJoinPointParams(int num,String name)System.out.println("-bindJoinPointParams-");Syst

18、em.out.println("name:" + name);System.out.println("num:" + num);System.out.println("-bindJoinPointParams-");/下面是定義的Spring配置文件beans.xml<?xml version="1.0" encoding="UTF-8"><beans xmlns="/schema/beans"xml

19、ns:xsi="/2001/XMLSchema-instance"xmlns:aop="/schema/aop" xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.0.xsd/schema/aop http:/w

20、/schema/aop/spring-aop-2.0.xsd">_(1) <bean id="waiter" class="com.cstp.NaiveWaiter"/><bean class="com.cstp.aspectj.aspectj.PreGreetingAspect"/><bean class=”com.cstp.aspectj.advanced.BeforeAspect”/></beans>/下面是測試的代碼pa

21、ckage com.cstp.aspectj.example;import org.springframework.aop.aspectj.annotation.AspectJProxyFactory;import org.cstp.NaiveWaiter;import org.cstp.Waiter;public class Testpublic static void main(String args)ApplicationContext tx=new ClassPathXmlApplicationContext(“com/cstp/schema/beans.xml”);NaiveWait

22、er proxy=tx.getBean(“waiter”);proxy.greetTo("John");proxy.serveTo("John",10);請回答下面問題:1).首先,請?zhí)顚懮厦娴目瞻?1)處。2).請寫出測試代碼運行后的結果。3).如果我們要把第一個切面類采用Schema XML方式來完成,請寫出該種方式的配置文件,只需要寫出<aop:config>中配置增強和切點的方式。<aop:config> </aop:config>五:編程(總分10分)5.1:下面是一個需要進行事務管理的業(yè)務類,package

23、 com.cstp.service;import com.cstp.dao.LoginLogDao;import com.cstp.dao.UserDao;import com.cstp.domain.User;public class UserServiceImpl implements UserServiceprivate UserDao userDao; /注入接口對象private LoginLogDao loginLogDao; /注入接口對象public void setUserDao(UserDao userDao)this.userDao=userDao;public void

24、 setLoginLogDao(LoginLogDao loginLogDao)this.loginLogDao=loginLogDao;public boolean hasMatchUser throws Exception(String userName, String password)int matchCount=userDao.getMatchCount(useName, password);return matchCount>0;public User findUserByUserName throws Exception (String userName)return us

25、erDao.findUserByUserName(userName);public void loginSuccess throws Exception (User user)user.setCredits(5+user.getCredits();LoginLog loginLog=new LoginLog();loginLog.setUserId(user.getUserId();loginLog.setIp(user.getLastIp();loginLog.setLoginDate(user.getLastVisit();userDao.updateLoginInfor(user);lo

26、ginLogDao.insertLoginLog(loginLog);其中hasMatchUser(),findUserByUserName(),loginSuccess()需要的事務管理需求描述如下:hasMatchUser():只讀事務,事務傳播方式必須有事務管理,隔離級別是不能出現(xiàn)臟讀,出現(xiàn)SQLException需要回滾。findUserByUserName():只讀事務,事務傳播方式可以沒有事務管理,隔離級別是不能出現(xiàn)臟讀,出現(xiàn)任何Exception不需要回滾。loginSuccess():可寫事務,事務傳播方式是強制方式,隔離級別是不能出現(xiàn)臟讀,出現(xiàn)任何Exception需要回滾。

27、(1) 寫出該業(yè)務類使用注解來實現(xiàn)事務管理的完整形式。(2) 寫出該業(yè)務類使用Schema XML方式來實現(xiàn)事務管理的完整形式(填入下面即可)。<?xml version="1.0" encoding="UTF-8"><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:aop="http:/www.springf

28、/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.0.xsd/schema/tx/schema/tx/sp

29、ring-tx-2.0.xsd/schema/aop/schema/aop/spring-aop-2.0.xsd"><import resource="classpath:cstp-dao.xml"/> </beans>愛人者,人恒愛之;敬人者,人恒敬之;寬以濟猛,猛以濟寬,政是以和。將軍額上能跑馬,宰相肚里能撐船。最高貴的復仇是寬容。有時寬容引起的道德震動比懲罰更強烈。君子賢而能容罷,知而能容愚,博而能容淺,粹而能容雜

30、。寬容就是忘卻,人人都有痛苦,都有傷疤,動輒去揭,便添新創(chuàng),舊痕新傷難愈合,忘記昨日的是非,忘記別人先前對自己的指責和謾罵,時間是良好的止痛劑,學會忘卻,生活才有陽光,才有歡樂。不要輕易放棄感情,誰都會心疼;不要沖動下做決定,會后悔一生。也許只一句分手,就再也不見;也許只一次主動,就能挽回遺憾。世界上沒有不爭吵的感情,只有不肯包容的心靈;生活中沒有不會生氣的人,只有不知原諒的心。感情不是游戲,誰也傷不起;人心不是鋼鐵,誰也疼不起。好緣分,憑的就是真心真意;真感情,要的就是不離不棄。愛你的人,舍不得傷你;傷你的人,并不愛你。你在別人心里重不重要,自己可以感覺到。所謂華麗的轉身,都有旁人看不懂的情深。人在旅途,肯陪你一程的人很多,能陪你一生的人卻很少。誰在默默的等待,誰又從未走遠,誰能為你一直都在?這世上,別指望人人都對你好,對你好的人一輩子也不會遇到幾個。人心只有一顆,能放在心上的人畢竟不多;感情就那么一塊,心

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論