版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Spring練習(xí)題1. 解釋一下DI(Dependency Injection,依賴注入)和IoC(Inversion of Control,控制反轉(zhuǎn))。答:依賴注入DI是一個程序設(shè)計模式和架構(gòu)模型, 一些時候也稱作控制反轉(zhuǎn),盡管在技術(shù)上來講,依賴注入是一個IOC的特殊實(shí)現(xiàn),依賴注入是指一個對象應(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)于一個對象如何獲取他所依賴的對象的引用,這
2、個責(zé)任的反轉(zhuǎn)。2. 請你談?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ù)層框架 是一個整合的框架,能夠很好地黏合表示層與持久層3. 什么是AOP,AOP的作用是什么?AOP為Aspect Oriented Programming的縮寫,意為:面向切面編程(也叫面向方面),可以通過預(yù)編譯方式和運(yùn)行期動態(tài)代理實(shí)現(xiàn)在不修改源代碼的情況下給程序動態(tài)統(tǒng)一添加功能的一種技術(shù)。AOP實(shí)際是GoF設(shè)計模式的延
3、續(xù),設(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. 描述一下s
4、pring中實(shí)現(xiàn)DI(dependency 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-i
5、nit=“true”。prototype 每次從容器獲取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,
6、改bean能夠接受 :getMessage(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è)計模式
7、,Spring提供了一種實(shí)現(xiàn)9. 下面關(guān)于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的說法錯
8、誤的是( )。A. 首先要編寫方面代碼,實(shí)現(xiàn)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類Stu
9、dent及其Hibernate映射文件;2) 編寫程序插入一條記錄(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
10、 age;public void setAge(int age) 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.scho
11、ol = school;private int sid;private 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=&quo
12、t;com.moder.Student" catalog="wds"><id name="sid"><generator class="native"></generator></id><property name="name"></property><property name="sex"></property><property name="age">
13、;</property><property 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=se
14、ssion.createQuery(sql);List<Student> list=query.list();for(Student u:list)System.out.println(u.getName();System.out.println(u.getSchool();session.getTransaction().commit();session.close(); catch (Exception e) e.printStackTrace();插入代碼:public void addStudent() Session session = HibernateSessionF
15、actory.getSession();System.out.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.ge
16、tTransaction().commit();session.close();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 Equ
17、ip loricae;/鎧甲private Equip boot;/靴子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)
18、魔指環(huán)速度增效2688攻擊增效44212防御增效615322) 編寫程序代碼,以如下格式輸出藍(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>、<
19、;aop:pointcut>和<aop:advisor>配置 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:
20、pointcut id="somePointcut" expression="execution(* annoaop.Component.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.AspectB
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度版權(quán)許可合同許可方式
- 2024年城市軌道交通建設(shè)與運(yùn)營管理承包合同
- 2024小產(chǎn)權(quán)房買賣合同(買方)范本
- 2024年度通信工程安全施工質(zhì)量保證合同
- 2024年度學(xué)生轉(zhuǎn)學(xué)與安全責(zé)任承諾合同
- 2024年度物業(yè)租賃合同:高端商務(wù)樓物業(yè)管理與租賃合同
- 2024年廣告投放合同投放策略與違約金
- 2024年家具企業(yè)員工股權(quán)激勵計劃合同
- 2024年度影視制作合同標(biāo)的及制作要求
- 2024丙丁雙方關(guān)于合作開展物流業(yè)務(wù)的戰(zhàn)略合作協(xié)議
- 【課件】第15課+權(quán)力與理性-17、18世紀(jì)西方美術(shù)+課件-高中美術(shù)人教版(2019)美術(shù)鑒賞
- 兒童早期的認(rèn)知發(fā)展-皮亞杰前運(yùn)算階段(三座山實(shí)驗(yàn))
- 國開一體化平臺01588《西方行政學(xué)說》章節(jié)自測(1-23)試題及答案
- 2024年極兔速遞有限公司招聘筆試參考題庫附帶答案詳解
- 2024年威士忌酒相關(guān)公司行業(yè)營銷方案
- 網(wǎng)絡(luò)游戲危害課件
- 2024供電營業(yè)規(guī)則學(xué)習(xí)課件
- 鐵路給水排水設(shè)計規(guī)范(TB 10010-2016)
- GINA2023-哮喘防治指南解讀-課件
- 2024年上海市第二十七屆初中物理競賽初賽試題及答案
- 寢室設(shè)計方案方法與措施
評論
0/150
提交評論