Spring練習(xí)題_第1頁
Spring練習(xí)題_第2頁
Spring練習(xí)題_第3頁
Spring練習(xí)題_第4頁
Spring練習(xí)題_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Spring練習(xí)題1. 請你談?wù)凷SH整合。Struts 是一個表示層框架,主要作用是界面展示,接受請求,分發(fā)請求;在mvc框架中,struts屬于vc層次 負(fù)責(zé)界面,負(fù)責(zé)mvc關(guān)系的分發(fā);Hibernate 是一個持久化層框架,他只負(fù)責(zé)與關(guān)系數(shù)據(jù)庫的操作Spring 是一個業(yè)務(wù)層框架 是一個整合的框架,能夠很好地黏合表示層與持久層2. 解釋一下DI(Dependency Injection,依賴注入)和IoC(Inversion of Control,控制反轉(zhuǎn))。答:依賴注入DI是一個程序設(shè)計模式和架構(gòu)模型, 一些時候也稱作控制反轉(zhuǎn),盡管在技術(shù)上來講,依賴注入是一個IOC的特殊實(shí)現(xiàn),依賴注入

2、是指一個對象應(yīng)用另外一個對象來提供一個特殊的能力,控制反轉(zhuǎn)和依賴注入的根本思想就是把類的依賴從類內(nèi)部轉(zhuǎn)化到外部以減少依賴應(yīng)用控制反轉(zhuǎn),對象在被創(chuàng)立的時候,由一個調(diào)控系統(tǒng)內(nèi)所有對象的外界實(shí)體,將其所依賴的對象的引用,傳遞給它。也可以說,依賴被注入到對象中。所以,控制反轉(zhuǎn)是,關(guān)于一個對象如何獲取他所依賴的對象的引用,這個責(zé)任的反轉(zhuǎn)。3. 什么是AOP,AOP的作用是什么?AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程也叫面向方面,可以通過預(yù)編譯方式和運(yùn)行期動態(tài)代理實(shí)現(xiàn)在不修改源代碼的情況下給程序動態(tài)統(tǒng)一添加功能的一種技術(shù)。AOP實(shí)際是GoF設(shè)計模式的延續(xù),

3、設(shè)計模式孜孜不倦追求的是調(diào)用者和被調(diào)用者之間的解耦,AOP可以說也是這種目標(biāo)的一種實(shí)現(xiàn)。4. 根據(jù)自己的理解談?wù)勔韵聨讉€概念:切面Aspect、通知Advice、切入點(diǎn)Pointcut、織入Weaving。切面Aspect 切面,對象操作過程中的截面,指需要實(shí)現(xiàn)的交叉功能。連接點(diǎn)JoinPoint程序運(yùn)行過程中的某個階段點(diǎn)。如某個方法調(diào)用,或者某個異常被拋出。在這個階段點(diǎn)插入切面。通知Advice在某個連接點(diǎn)所采用的處理邏輯,即切面的實(shí)際實(shí)現(xiàn)。切點(diǎn)(PointCut)一系列連接點(diǎn)的集合,指明Advice將在何時觸發(fā),即Advice應(yīng)用在哪些連接點(diǎn)5. 描述一下spring中實(shí)現(xiàn)DIdepend

4、ency injection的幾種方式。設(shè)置注入:指的是setter()的方式傳入被調(diào)用者的實(shí)例;構(gòu)造注入:用構(gòu)造方法來完成依賴注入的設(shè)定;6. 請介紹下spring中bean的作用域及生命周期。 Bean的作用域singleton 在每個Spring IoC容器中一個bean定義只有一個對象實(shí)例。默認(rèn)情況下會在容器啟動時初始化bean,但我們可以指定Bean節(jié)點(diǎn)的lazy-init=“true來延遲初始化bean,這時候,只有第一次獲取bean會才初始化bean。如果想對所有bean都應(yīng)用延遲初始化,可以在根節(jié)點(diǎn)beans設(shè)置default-lazy-init=“totype

5、 每次沉著器獲取bean都是新的對象。.request .session Bean的聲明周期:定義Bean初始化Bean調(diào)用Bean也就是使用Bean銷毀Bean.global sessi7. 如何使用Spring實(shí)現(xiàn)國際化? Spring 定義了訪問國際化信息的MessageSource接口,ApplicationContext接口繼承了MessageSource接口,ApplicationContext加載時,自動查找context中的MessageSource bean .找到后腦實(shí)例化空的StaticMagessageSource bean,改bean能夠接受 :getMessage(

6、String code,object ,args,Locale locale)getMessage(String code,object ,args,String defaultMessage,Locale locale)getMessage(MessageSourceResolvable resolvable,Locale locale)的調(diào)用實(shí)現(xiàn)國際化8. 下面關(guān)于AOP的說法錯誤的選項是( )。A. AOP將散落在系統(tǒng)中的“方面代碼集中實(shí)現(xiàn)B. AOP有助于提高系統(tǒng)的可維護(hù)性C. AOP已經(jīng)表現(xiàn)出了將要代替面向?qū)ο蟮内厔軩. AOP是一種設(shè)計模式,Spring提供了一種實(shí)現(xiàn)9. 下面關(guān)于

7、Spring的說法中錯誤的選項是 。A. Spring是一系列輕量級Java EE框架的集合B. Spring中包含一個“依賴注入模式的實(shí)現(xiàn)C. 使用Spring可以實(shí)現(xiàn)聲明式事務(wù)D. Spring提供了AOP方式的日志系統(tǒng)10. 關(guān)于聲明事務(wù)的說法,下面錯誤的選項是( ).A. Spring采取AOP的方式實(shí)現(xiàn)聲明式事務(wù)B. 聲明式事務(wù)是非侵入式的,可以不修改原來代碼就給系統(tǒng)增加事務(wù)支持C. 配置聲明式事務(wù)需要tx和aop兩個命名空間的支持D. 配置聲明式事務(wù)時我們主要關(guān)注“在那兒和“采取什么樣的事務(wù)策略11. 以下關(guān)于Spring AOP的說法錯誤的選項是 。A. 首先要編寫方面代碼,實(shí)現(xiàn)

8、MethodBeforeAdvice接口B. Spring AOP采用攔截方法調(diào)用的方式實(shí)現(xiàn),可以在調(diào)用方法前、調(diào)用后、拋出異常時攔截C. Spring AOP采用代理的方式實(shí)現(xiàn),常用代理對象的類別為org.springframework. aop.framework.ProxyFactoryBeanD. Spring AOP可以在對目標(biāo)target不做任何修改的情況下增加程序功能12. 數(shù)據(jù)庫中存在一張STUDENT表(SID,NAME,SEX,AGE,SCHOOL)。SID為整型,其余字段為字符串,長度自定。1) 編寫一個POJO類Student及其Hibernate映射文件;2) 編寫程

9、序插入一條記錄1,"王二小","男","20","CWNU";3) 使用HQL語句查詢使用投影查詢第一條記錄的NAME,SCHOOL字段,并打印輸出到控制臺。Student實(shí)體代碼:package com.moder;public class Student public int getSid() return sid;public void setSid(int sid) this.sid = sid;public int getAge() return age;public void setAge(int ag

10、e) this.age = age;public String getSex() return sex;public void setSex(String sex) this.sex = sex;public String getName() return name;public void setName(String name) = name;public String getSchool() return school;public void setSchool(String school) this.school = school;private int sid;pr

11、ivate int age;private String sex;private String name;private String school;Student.hbm.xml代碼:<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-/Hibernate/Hibernate Mapping DTD 3.0/EN"" :/<hibernate-mapping><class name="com.moder.Student" c

12、atalog="wds"><id name="sid"><generator class="native"></generator></id><property name="name"></property><property name="sex"></property><property name="age"></property><prope

13、rty name="school"></property></class></hibernate-mapping>測試代碼:public void selectStudent()Session session = HibernateSessionFactory.getSession();session.beginTransaction();String sql="from Student as u where u.id=1"try Query query=session.createQuery(sql);List

14、<Student> list=query.list();for(Student u:list)System.out.println(u.getName();System.out.println(u.getSchool();session.getTransaction() mit();session.close(); catch (Exception e) e.printStackTrace();插入代碼:public void addStudent() Session session = HibernateSessionFactory.getSession();System.out

15、.println(session);Student student = new Student();student.setAge(1);student.setName("ddd");student.setSchool("tt");student.setSex("tt");session.beginTransaction();try session.save(student); catch (Exception e) e.printStackTrace();session.getTransaction() mit();session.c

16、lose();13. 某程序系統(tǒng)中有如下幾個類。public class Equip/裝備private String name;/裝備名稱private String type;/裝備類型,頭盔、鎧甲等private Long speedPlus;/速度增效private Long attackPlus;/攻擊增效private Long defencePlus;/防御增效/Getters & Setterspublic class Player/玩家private Equip armet;/頭盔private Equip loricae;/鎧甲private Equip boot;

17、/靴子private Equip ring;/指環(huán)/Getters & Setterspublic void updateEquip(Equip equip)if("頭盔".equals(equip.getType()System.out.println(armet.getName()+"升級為"+ equip.getName();this.armet= equip;1) 在Spring配置文件中,配置一個擁有如下裝備的玩家“zhangsan。裝 備戰(zhàn)神頭盔連環(huán)鎖子甲波斯追風(fēng)靴藍(lán)魔指環(huán)速度增效2688攻擊增效44212防御增效615322) 編寫

18、程序代碼,以如下格式輸出藍(lán)魔指環(huán)的屬性。藍(lán)魔指環(huán)速度增加:8;攻擊增加:12;防御增加:214. 下面關(guān)于“依賴注入的說法,錯誤的選項是 A.將組件間的依賴關(guān)系采取配置文件的方式管理,而不是硬編碼在代碼中B.降低了組件間的耦合,使程序更容易維護(hù)和升級C.促進(jìn)了“面向接口編程,使構(gòu)建大規(guī)模程序更輕松D.需要定義大量接口,增加了編碼復(fù)雜度15. 關(guān)于Spring AOP,下面說法錯誤的選項是 A.支持前置通知、后置通知、環(huán)繞通知 B.采用代理的方式實(shí)現(xiàn)C.在Spring2.0以前的版本中通過<aop:config>、<aop:pointcut>和<aop:adviso

19、r>配置 D.與“依賴注入實(shí)現(xiàn)緊密結(jié)合16. Spring各模塊之間關(guān)系 A.Spring各模塊之間是緊密聯(lián)系的,相互依賴的B.Spring各模塊之間可以單獨(dú)存在C.Spring的核心模塊是必須的,其他模塊是基于核心模塊D.Spring的核心模塊不是必須的,可以不要17. 舉例說明使用XML方式配置AOP所使用的類、標(biāo)簽和屬性。<aop:config> <aop:aspect id="aspectDemo" ref="aspectBean"> <aop:pointcut id="somePointcut&qu

20、ot; expression="execution(* annoaop ponent.business*(.)" /> <aop:before pointcut-ref="somePointcut" method="validateUser" /> <aop:before pointcut-ref="somePointcut" method="beginTransaction" /> <aop:after-returning pointcut-ref="somePointcut" method="endTransaction" /> <aop:after-returning pointcut-ref="somePointcut" method="writeLogInfo" /> </aop:aspect> </aop:config> <bean id="aspectBean" class="annoaop.Aspect

溫馨提示

  • 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

提交評論