@Autowired默認byType,@Resource byname
此題考察的是SpringIoC三種注入方式。 SpringIoC三種注入方式:接口注入,設值注入,構造注入,沒有指針注入這一說法。因此d選項是錯誤的。 因此答案選擇d
我一直以為關注的是點記住選AD
此題考查的是AOP的相關概念。 為什么不選b,因為Spring用代理類包裹切面,把他們織入到Spring管理的bean中,所以是面向橫向的。所以b選項錯誤。 為什么不選c,因為代理類偽裝成目標類,它會截取對目標類中方法的調用,讓調用者對目標類的調用都先變成調用偽裝類,偽裝類中就先執行了切面,再把調用轉發給真正的目標bean。所以它關注的是面,不是點。所以選項錯誤。 因此答案選ad
此題考查的是Spring-面向切面編程通過aop命名空間將JavaBean中的方法聲明為增強處理,abc說法正確,如果目標方法返回void值,則該增強處理也會被執行。D說法有誤,所以正確答案是d。
如果在MyBatis-CongigLocation.xml逐個列出所有的sql映射文件,比較繁瑣,可以利用SqlSessionFactoryBean的mapperLocations屬性掃描式加載SQL映射文件,可以才用*作為通配符的形式,一次加載多個SQL映射文件,但是在集成時還是需要配置MyBatis-CongigLocation.xml,故此題應該選d
只要記住構造器初始索引為0即可。
此題考查的是Spring實現AOP的不同方式的比較。 靜態織入是在編譯期,切面直接以字節碼形式編譯到目標字節碼文件中,對系統性能無影響,但不夠靈活。動態代理是在運行期,目標類加載后,為接口動態生成代理類,將切面織入到代理類中,需要實現接口,更靈活。所以A、B錯誤。動態字節碼生成的原理是在運行期,目標類加載后,動態構建字節碼文件生成目標類的子類,將切面邏輯加入到子類中,優點是沒有接口也可以織入但擴展類的實例方法為final時,無法進行織入;自定義類加載器的原理是,在運行期目標加載前,將切面邏輯加到目標字節碼里,可以對絕大部分類進行織入,代碼中若使用了其它類加載器,則這些類將不會被織入。
選AB
選C
<p>Spring的加載順序最開始是構造函數,一次ad是錯誤的,構造函數執行完依賴注入,再到init-method,因此也是錯誤的,c是正確的</p>
選項C正確。ABD均是用於IoC的定義Bean的注解
D選項錯誤,defaultReadOnly:設置數據源是否僅能執行只讀操作, 默認值為 false
sqlsessionFactory不需要在Spring中配置