目錄
- 1、 請簡述Spring框架的優點,
- 2、 請簡述什么是Spring的IoC和DI,
- 3、 請簡述Bean的生命周期,
- 4、 請簡述Bean的幾種裝配方式的基本用法
- 5、 spring屬性注入有哪幾種方式?
- 6、 BeanFactory和ApplicationContext關系如何?
- 4、 請簡述Spring AOP的概念?
- 5、 請列舉你所知道的AOP專業術語并解釋,
- 6、 請列舉你所知道的Spring的通知型別并解釋,
- 7、 請簡述Spring JDBC是如何進行配置的,
- 8、請簡述不同物件之間的三種關聯關系,
- 9、請簡述MyBatis關聯查詢映射的兩種處理方式,
- 10、請簡述引入SQL檔案的程序
1、 請簡述Spring框架的優點,
Spring框架的優點如下:
(1)非侵入式設計,它可以使應用程式代碼對框架的依賴最小化,
(2)方便解耦、簡化開發,將所有物件的創建和依賴關系的維護作業都交給Spring容器管理,大大的降低了組件之間的耦合性,
(3)支持AOP:Spring提供了對AOP的支持,提高了程式的復用性,
(4)支持宣告式事務處理:只需要通過配置就可以完成對事務的管理,而無需手動編程,
(5)方便程式的測驗:Spring提供了對Junit4的支持,可以通過注解方便的測驗Spring程式,
(6)方便集成各種優秀框架,
(7)降低了Java EE API的使用難度,
2、 請簡述什么是Spring的IoC和DI,
IoC:控制反轉,就是指在使用Spring框架之后,物件的實體不再由呼叫者來創建,而是由Spring容器來創建,Spring容器來控制程式之間的關系,而不是由呼叫者的程式代碼直接控制,這樣,控制權由應用代碼轉移到了Spring容器,控制權發生了反轉,
DI:依賴注入,它與控制反轉(IoC)的含義相同,只不過這兩個稱呼是從兩個角度描述的同一個概念,從Spring容器的角度來看,Spring容器負責將被依賴物件賦值給呼叫者的成員變數,這相當于為呼叫者注入了它依賴的實體,這就是Spring的依賴注入,
3、 請簡述Bean的生命周期,
Bean的生命周期的整個執行程序描述如下,
- 實體化Bean,
- 利用依賴注入來完成Bean中所有屬性值的配置注入,
- 根據Bean中不同的介面,Spring呼叫不同的方法,
4、 請簡述Bean的幾種裝配方式的基本用法
Bean中主要包含三種裝配方式,分別為基于XML的裝配,基于Annotation的裝配和自動裝配,這三種裝配方式的用法如下:
- 基于XML的裝配:Spring提供了2種基于XML的裝配方式:設值注入和構造注入,
設定注入:Bean類必須提供一個默認的無參構造方法,同時為需要注入的屬性提供對應的setter方法,在Spring組態檔中,需要使用< bean >元素的子元素< property >來為每個屬性注入值,
構造注入:在組態檔里,需要使用< bean >元素的子元素< constructor-arg >來定義構造方法的引數,可以使用其value屬性(或子元素)來設定該引數的值, - 基于Annotation的裝配:首先需要使用@Repository、@Service與@Constroller分別對實作類進行標注,然后用@Autowired或@Resource注解對注入的Bean的屬性進行標注,最后在Spring的組態檔中,通過
<context:annotation-config />來開啟注解處理器,或使用<context:component-scan base-package="Bean所在的包路徑"/>的配置方式即可實作Annotation的裝配, - 自動裝配:在< bean >元素中使用autowire屬性,并將其屬性值設定為byName或者byType即可實作自動裝配,
5、 spring屬性注入有哪幾種方式?
(1)介面注入:在介面中定義要注入的資訊,并通過介面完成注入;
(2)構造注入:使用構造方法注入實體;
(3)set注入:使用set方法注入實體,最常用,
6、 BeanFactory和ApplicationContext關系如何?
BeanFactory:是Spring里面最低層的介面,提供了最簡單的容器的功能,只提供了實體化物件和拿物件的功能
ApplicationContext:應用背景關系,繼承BeanFactory介面,它是Spring的一各更高級的容器,提供了更多的有用的功能
4、 請簡述Spring AOP的概念?
AOP(面向切面編程),通過預編譯方式和運行期動態代理實作程式功能的統一維護的一種技術,AOP是OOP的延續,
5、 請列舉你所知道的AOP專業術語并解釋,
AOP的專業術語包括Aspect、Joinpoint、Pointcut、Advice、Target Object、Proxy和Weaving,
(1)Aspect(切面):在實際應用中,切面通常是指封裝的用于橫向插入系統功能(如事務、日志等)的類,
(2)Joinpoint(連接點):在程式執行程序中的某個階段點,它實際上是物件的一個操作,例如方法的呼叫或例外的拋出,在Spring AOP中,連接點就是指方法的呼叫,
(3)Pointcut(切入點):是指切面與程式流程的交叉點,即那些需要處理的連接點,如圖3-2所示,通常在程式中,切入點指的是類或者方法名,如某個通知要應用到所有以add開頭的方法中,那么所有滿足這一規則的方法都是切入點,
(4)Advice(通知/增強處理):AOP框架在特定的切入點執行的增強處理,即在定義好的切入點處所要執行的程式代碼,可以將其理解為切面類中的方法,它是切面的具體實作,
(5)Target Object(目標物件):是指所有被通知的物件,也被稱為被增強物件,如果AOP框架采用的是動態的AOP實作,那么該物件就是一個被代理物件,
(6)Proxy(代理):將通知應用到目標物件之后,被動態創建的物件,
(7)Weaving(織入):將切面代碼插入到目標物件上,從而生成代理物件的程序,
6、 請列舉你所知道的Spring的通知型別并解釋,
Spring中的通知按照在目標類方法的連接點位置,可以分為以下5種型別:
(1)org.aopalliance.intercept.MethodInterceptor(環繞通知)
在目標方法執行前后實施增強,可以應用于日志、事務管理等功能,
(2)org.springframework.aop.MethodBeforeAdvice(前置通知)
在目標方法執行前實施增強,可以應用于權限管理等功能,
(3)org.springframework.aop.AfterReturningAdvice(后置通知)
在目標方法執行后實施增強,可以應用于關閉流、上傳檔案、洗掉臨時檔案等功能,
(4)org.springframework.aop.ThrowsAdvice(例外通知)
在方法拋出例外后實施增強,可以應用于處理例外記錄日志等功能,
(5)org.springframework.aop.IntroductionInterceptor(引介通知)
在目標類中添加一些新的方法和屬性,可以應用于修改老版本程式(增強類)
7、 請簡述Spring JDBC是如何進行配置的,
在Spring的組態檔中配置JDBC時,需要定義了三個Bean,分別是dataSource、jdbcTemplate和需要注入類的Bean,在定義jdbcTemplate時,需要將dataSource注入到jdbcTemplate中,而其他需要使用jdbcTemplate的Bean,也需要將jdbcTemplate注入到該Bean中,
8、請簡述不同物件之間的三種關聯關系,
一對一:在本類中定義對方型別的物件
一對多:一個A型別別對應多個B型別別的情況,需要在A類中以集合的方式引入B型別別的物件,在B類中定義A型別別的屬性a
多對多:就是在A類中定義B型別別的集合,在B類中定義A型別別的集合,
9、請簡述MyBatis關聯查詢映射的兩種處理方式,
嵌套查詢:通過執行另外一條SQL映射陳述句來回傳預期的復雜型別;
嵌套結果:是使用嵌套結果映射來處理重復的聯合結果的子集,
10、請簡述引入SQL檔案的程序
(1)創建資料庫;
(2)選擇所創建的資料庫;
(3)使用source命令匯入資料庫檔案
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/386555.html
標籤:java
