十道Spring選擇題及解析。

1、(多選)在關於依賴注入,描述正確的是(BC)
A、依賴注入可以增強系統各組件的依賴關係
B、所謂依賴注入,就是明確地定義組件接口,獨立開發各個組件
,然後根據組件件依賴關係組裝運行的設計模式
C、依賴注入能夠降低系統各組件的依賴關係,提倡面向接口編程

D、Spring的依賴注入和控制反轉是完全不同的兩個概念

解析:依賴注入和控制反轉是同一個概念。通過把具體實現之間的依賴轉化爲對接口的依賴,從而降低模塊間的耦合。

*個人覺得說“依賴注入和控制反轉是同一個概念”並不恰當,兩者是spring實例化bean的兩個步驟,但並不等價。


2、(多選)對於Spring的AOP的實現方式下列選項說法錯誤的是(AD)
A、Spring的Advice採用特定的aop語言,在定義pointcuts不可以使用配置文件
B、以實現接口的方式作爲優先,這樣可以降低應用程序組件之間的耦合程度
C、Spring不支持屬性成員jointponts
D、以上說法都正確

解析:利用AOP可以對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度降低,提高程序的可重用性,同時提高了開發的效率。(AOP的好處,可背)

Spring的AOP只實現了方法級別的連接點,在J2EE應用中,AOP攔截到方法級的操作已經足夠。OOP倡導的是基於get/set方法的訪問,而非直接訪問域,Spring有足夠裏有僅僅提供方法級的連接點。

AOP是一種思想,沒有"AOP語言"。使用Annotation來實現advice可以減少XML的配置,定義切入點時也無需在XML中進行。


3、下面對Spring中Bean的注入說法正確的是(B)
A、Bean根據注入方式不同可以分爲構造方法注入和自動裝載。
B、使用構造方法注入構造對象的同時,完成依賴關係的建立
C、在關係的對象很多時,使用構造方法注入更適合
D、構造方法通過constructor-index屬性來指定,在該標籤下要指定索引的位置

解析:Spring依賴注入的兩種方式是構造注入和設值注入。對於構造注入,Spring在創建Bean實例時,需要同時實例化其依賴的全部實例。對於複雜的依賴關係,若使用構造注入,會導致構造器過於臃腫。在bean元素中使用constructor-arg元素來設值屬性值的構造函數注入,可以通過該元素的type屬性指定參數類型,index屬性指定該參數在構造函數參數列表中的索引位置。


4、關於ApplicationContext接口,下列說法錯誤的是(C)
A、它是beanfactory的子接口
B、ApplicationContext是基於beanfactory而建立的,ApplicationContext繼承了beanFactory
的功能
C、fileSystemXmlApplicationContext是其子接口(應說“子實現”?
D、ApplicationContext提供了對資源文件進行訪問的支持

解析:ApplicationContext是BeanFactory的子接口,ApplicationContext對象裏面包含了BeanFactory的所有功能,並提供了一些擴展,比如更容易同SpringAOP特性整合,資源文件的處理,Spring爲ApplicationContext提供的3種實現分別爲:ClassPathXmlApplicationContextFileSystemXmlApplicationContextXmlWebApplicationContext


5、下面關於事務管理說法錯誤的是(D)
A、Spring事務管理方式包括編程方式、聲明式
B、編程式採用的方式來控制事物的邊界
C、聲明式採用配置xml方式,將事務管理與實際業務代碼解耦
D、實現編程事物,可以實現PlatformTransaction接口或是使用事務模板TransactionTemplate

解析:Spring提供的事務管理可以分爲兩類:編程式和聲明式。編程式通過代碼實現,比較直接,但是代碼量大,重複的代碼比較多,不易維護;聲明式比編程式更靈活。Spring提供兩種方式的編程式事務管理,分別是使用TransactionTemplate和直接使用PlatformTransactionManager。聲明式事務管理通過AOP實現,這是最少影響應用代碼的選擇。


6、以下說法不正確的是(B)
A、Spring是一個輕量級框架,大大簡化了java企業級開發
B、Spring是企業級應用開發的一站式選擇,可以取代其他已有框架
C、Spring框架最基本的部分是Spring Core模塊,提供Ioc和依賴注入
D、Spring AOP是基於Spring Core的符合規範的面向切面編程的實現

解析:略


7、下面對Spring框架的持久化支持說法錯誤的是(C)。
A、Spring沒有自己的持久化方案,它集合了現有的流行持久化框架
B、Spring採用JDBC模板封裝了JDBC的數據庫操作
C、Spring對各種持久化技術提供了統一的編程方式
D、Spring將數據庫訪問的checked異常轉換爲運行時異常

解析:Spring對多個持久化技術提供了集成的支持,藉助於Spring框架提供的DAO抽象,開發者能夠以統一的方式同數據訪問技術(比如JDBC、Hibernate、JDO、TopLink)進行交互。JdbcTemplate是Spring爲藉助JDBC操作RDBMS而提供的實用模版類,簡化了JDBC操作。Spring提供了DataAccessException,這個異常類對現有多種數據庫訪問技術的異常進行封裝,爲我們提供了一個與底層數據庫無關的異常體系,因此可以方便地處理各種數據訪問異常,該異常類是RuntimeException。


8、在一個運行結果的測試類中,有如下代碼:
ApplicationContext Context=new ClassPathXmlApplicationContext("applicationContext")
UserService uservice=(UserService)Context.getBean("userservice")
下列選項中關於Spring的配置文件理解不正確的是(C)
A、Spring的配置文件名字爲applicationContext.xml
B、Spring配置文件一般使用bean元素中的id=“userService”
C、UserService是一個接口
D、在配置文件中UserService可以沒有屬性注入

解析:以上代碼中並沒有標明userservice是一個接口,所以C錯。


9、使用Spring簡化Hibernate的開發,不需要的步驟是(C)
A、在Spring配置文件ApplicationContext.xml創建一個名爲SessionFactory的bean類的
實現是org.Springframework.orm.hibemate3.LoactionFactoryBean
B、在Dao接口的實現類繼承HibernateDaoSupport
C、Dao接口的實現類提供SessionFactory的set/get方法
D、在Spring的配置文件中爲Dao注入SessionFactory

解析:HibernateDaoSupport類中已經有了sessionFactory。


10、(多)下面對Spring說法正確的是(BD)
A、Spring不支持對數據庫的事務管理
B、Spring支持對業務的事務管理
C、Spring的配置文件必須通過Struts-config.xml通知應用服務器所在的目錄
D、Spring實現了AOP思

解析:Spring提供了兩種事務管理方式:編程式和聲明式。其中聲明式事務管理是通過AOP實現的。Spring的配置文件可以通過Struts的插件機制、Servlet、Listener等多種方式加載,通過Servlet或Listener加載時可以在web.xml中通過context-param聲明其所在目錄

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章