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

下載本文檔

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

文檔簡介

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

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

3、k動態(tài)代理治入增強(qiáng)_代理方式,當(dāng)配置為<aop:aspectj-autoproxy proxy-target-class=_true_ />時,表示使用_cglib動態(tài)代理技術(shù)治入增強(qiáng)_代理方式。1.7:在Spring AOP中,我們可以通過_pointcut_注解對切點(diǎn)表達(dá)式進(jìn)行命名。1.8:Spring AOP中,在“進(jìn)入”連接點(diǎn)的情況下,_最高_(dá)優(yōu)先級的增強(qiáng)會先執(zhí)行;在“退出”連接點(diǎn)的情況下,_最高_(dá)優(yōu)先級的增強(qiáng)會最后執(zhí)行;對于定義在相同切面的增強(qiáng),根據(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:可以實(shí)現(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:我們學(xué)習(xí)過的Abstract Factory,Prototype,Singleton模式

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

7、函數(shù)B:方法入?yún)⑶悬c(diǎn)函數(shù)C:目標(biāo)類切點(diǎn)函數(shù)D:代理類切點(diǎn)函數(shù)2.8:說明下面切面類的增強(qiáng)實(shí)施到業(yè)務(wù)方法int foo(String name)時,其增強(qiáng)各自執(zhí)行后結(jié)果是什么?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:下面哪些不支持切點(diǎn)中的通配符,如+, ., 和*? _abcd_A:args()B:w

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

10、ail">null</property></bean ( F )3.3:在配置Bean時,內(nèi)部Bean中的singleton標(biāo)記及id或name屬性將不會被忽略,內(nèi)部bean總是匿名的且它們總是prototype模式的。同時將內(nèi)部bean注入到包含該內(nèi)部bean之外的bean也是可能的。(F )3.4:下面配置的Bean,Spring會在啟動時,IoC容器默認(rèn)會將該bean提前進(jìn)行實(shí)例化。<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ù)責(zé)其整個生命周期的。 ( F )3.7:切點(diǎn)表達(dá)式中的通配符“+”:其含義表示按類型匹配指定類的所有類,僅能跟在類名后面。( T ) 3.8:Spring的AOP中,用注解表示的后置增強(qiáng)是After

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

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

14、Spring核心是依賴注入模式spring可以隨時測試EJB測試非常麻煩EJB3,0是一個標(biāo)準(zhǔn)的框架4.2:在Spring IoC核心模式中,試比較三種推薦的依賴注入方式的相同點(diǎn)和不同點(diǎn)?4.3:請解釋你所理解的AOP中的如下概念:增強(qiáng)、切入點(diǎn)、連接點(diǎn)、切面,并說明它們之間的關(guān)系。以及Spring的AOP框架是如何用這些概念搭建并實(shí)現(xiàn)的,請闡述你的理解?4.4:說明你Spring中Bean的各種生命周期的理解?4.5:這里為下面的業(yè)務(wù)類方法編寫了兩個切面類,每個切面類中分別定義了一些增強(qiáng)方法,請完成下面的問題。/業(yè)務(wù)類定義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" /schema/aop/spring-aop-2.0.xsd">_(1) <bean id="waiter" class="com.cstp.NaiveWaiter"/><bean.aspectj.PreGreetingAs

20、pect"/><bean class=”.BeforeAspect”/></beans>/下面是測試的代碼package 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 t

21、x=new ClassPathXmlApplicationContext(“com/cstp/schema/beans.xml”);NaiveWaiter proxy=tx.getBean(“waiter”);proxy.greetTo("John");proxy.serveTo("John",10);請回答下面問題:1).首先,請?zhí)顚懮厦娴目瞻?1)處。2).請寫出測試代碼運(yùn)行后的結(jié)果。3).如果我們要把第一個切面類采用Schema XML方式來完成,請寫出該種方式的配置文件,只需要寫出<aop:config>中配置增強(qiáng)和切點(diǎn)的方式。<

22、;aop:config> </aop:config>五:編程(總分10分)5.1:下面是一個需要進(jìn)行事務(wù)管理的業(yè)務(wù)類,package 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; /注入

23、接口對象public void setUserDao(UserDao userDao)this.userDao=userDao;public void setLoginLogDao(LoginLogDao loginLogDao)this.loginLogDao=loginLogDao;public boolean hasMatchUser throws Exception(String userName, String password)int matchCount=userDao.getMatchCount(useName, password);return matchCount>0

24、;public User findUserByUserName throws Exception (String userName)return userDao.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();

25、loginLog.setLoginDate(user.getLastVisit();userDao.updateLoginInfor(user);loginLogDao.insertLoginLog(loginLog);其中hasMatchUser(),findUserByUserName(),loginSuccess()需要的事務(wù)管理需求描述如下:hasMatchUser():只讀事務(wù),事務(wù)傳播方式必須有事務(wù)管理,隔離級別是不能出現(xiàn)臟讀,出現(xiàn)SQLException需要回滾。findUserByUserName():只讀事務(wù),事務(wù)傳播方式可以沒有事務(wù)管理,隔離級別是不能出現(xiàn)臟讀,出現(xiàn)任何Ex

26、ception不需要回滾。loginSuccess():可寫事務(wù),事務(wù)傳播方式是強(qiáng)制方式,隔離級別是不能出現(xiàn)臟讀,出現(xiàn)任何Exception需要回滾。(1) 寫出該業(yè)務(wù)類使用注解來實(shí)現(xiàn)事務(wù)管理的完整形式。(2) 寫出該業(yè)務(wù)類使用Schema XML方式來實(shí)現(xiàn)事務(wù)管理的完整形式(填入下面即可)。<?xml version="1.0" encoding="UTF-8"><beans xmlns="/schema/beans"xmlns:xsi="http

27、://2001/XMLSchema-instance"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"/schema/aop/spring-aop-2.0.xsd"><import resource="classpath:cstp-dao.xml"/> </be

28、ans>愛人者,人恒愛之;敬人者,人恒敬之;寬以濟(jì)猛,猛以濟(jì)寬,政是以和。將軍額上能跑馬,宰相肚里能撐船。最高貴的復(fù)仇是寬容。有時寬容引起的道德震動比懲罰更強(qiáng)烈。君子賢而能容罷,知而能容愚,博而能容淺,粹而能容雜。寬容就是忘卻,人人都有痛苦,都有傷疤,動輒去揭,便添新創(chuàng),舊痕新傷難愈合,忘記昨日的是非,忘記別人先前對自己的指責(zé)和謾罵,時間是良好的止痛劑,學(xué)會忘卻,生活才有陽光,才有歡樂。不要輕易放棄感情,誰都會心疼;不要沖動下做決定,會后悔一生。也許只一句分手,就再也不見;也許只一次主動,就能挽回遺憾。世界上沒有不爭吵的感情,只有不肯包容的心靈;生活中沒有不會生氣的人,只有不知原諒的心。感情不是游戲,誰也傷不起;人心不是鋼鐵,誰也疼不起。好緣分,憑的就是真心真意;真感情,要的就是不離不棄。愛你的人,舍不得傷你;傷你的人,并不愛你。你在別人心里重不重要,自己可以感覺到。所謂華麗的轉(zhuǎn)身,都有旁人看不懂的情深。人在旅途,肯陪你一程的人很多,能陪你一生的人卻很少。誰在默默的等待,誰又從未走遠(yuǎn),誰能為你一直都在?這世上,別指望人人都對你好,對你好的人一輩子也不會遇到幾個。人心只有一顆,能放在心上的人畢竟不多;感情就那么一塊,心里一直裝著你其實(shí)是難得。動了真情,情才會最難割;付出真心,心才會最難舍。你在誰面前最蠢,就是最愛誰

溫馨提示

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

評論

0/150

提交評論