Spring面試題集錦(精選)

如下來自網絡收集,找不到原文出處。這次主要爲了面試收集,但願對你們有所幫助~~~~java

Spring面試題集錦(精選)

1.什麼是Spring?

Spring是一個開源的Java EE開發框架。Spring框架的核心功能能夠應用在任何Java應用程序中,但對Java EE平臺上的Web應用程序有更好的擴展性。Spring框架的目標是使得Java EE應用程序的開發更加簡捷,經過使用POJO爲基礎的編程模型促進良好的編程風格。git

2.Spring有哪些優勢?

  • 輕量級:Spring在大小和透明性方面絕對屬於輕量級的,基礎版本的Spring框架大約只有2MB。
  • 控制反轉(IOC):Spring使用控制反轉技術實現了鬆耦合。依賴被注入到對象,而不是建立或尋找依賴對象。
  • 面向切面編程(AOP): Spring支持面向切面編程,同時把應用的業務邏輯與系統的服務分離開來。
  • 容器:Spring包含並管理應用程序對象的配置及生命週期。
  • MVC框架:Spring的web框架是一個設計優良的web MVC框架,很好的取代了一些web框架。
  • 事務管理:Spring對下至本地業務上至全局業務(JAT)提供了統一的事務管理接口。
  • 異常處理:Spring提供一個方便的API將特定技術的異常(由JDBC, Hibernate, 或JDO拋出)轉化爲一致的、Unchecked異常。

3. Spring 事務實現方式有哪些?

  • 編程式事務管理:這意味着你能夠經過編程的方式管理事務,這種方式帶來了很大的靈活性,但很難維護。
  • 聲明式事務管理:這種方式意味着你能夠將事務管理和業務代碼分離。你只須要經過註解或者XML配置管理事務。

4.Spring框架的事務管理有哪些優勢?

  • 它爲不一樣的事務API(如JTA, JDBC, Hibernate, JPA, 和JDO)提供了統一的編程模型。
  • 它爲編程式事務管理提供了一個簡單的API而非一系列複雜的事務API(如JTA). 它支持聲明式事務管理。
  • 它能夠和Spring 的多種數據訪問技術很好的融合。

5.spring事務定義的傳播規則

  • PROPAGATION_REQUIRED: 支持當前事務,若是當前沒有事務,就新建一個事務。這是最多見的選擇。
  • PROPAGATION_SUPPORTS: 支持當前事務,若是當前沒有事務,就以非事務方式執行。
  • PROPAGATION_MANDATORY: 支持當前事務,若是當前沒有事務,就拋出異常。
  • PROPAGATION_REQUIRES_NEW: 新建事務,若是當前存在事務,把當前事務掛起。
  • PROPAGATION_NOT_SUPPORTED: 以非事務方式執行操做,若是當前存在事務,就把當前事務掛起。
  • PROPAGATION_NEVER: 以非事務方式執行,若是當前存在事務,則拋出異常。
  • PROPAGATION_NESTED:若是當前存在事務,則在嵌套事務內執行。若是當前沒有事務,則進行與PROPAGATION_REQUIRED相似的操做。

6.Spring 事務底層原理

  • 劃分處理單元——IoC

因爲spring解決的問題是對單個數據庫進行局部事務處理的,具體的實現首先用spring中的IoC劃分了事務處理單元。而且將對事務的各類配置放到了ioc容器中(設置事務管理器,設置事務的傳播特性及隔離機制)。github

  • AOP攔截須要進行事務處理的類

Spring事務處理模塊是經過AOP功能來實現聲明式事務處理的,具體操做(好比事務實行的配置和讀取,事務對象的抽象),用TransactionProxyFactoryBean接口來使用AOP功能,生成proxy代理對象,經過TransactionInterceptor完成對代理方法的攔截,將事務處理的功能編織到攔截的方法中。讀取ioc容器事務配置屬性,轉化爲spring事務處理須要的內部數據結構(TransactionAttributeSourceAdvisor),轉化爲TransactionAttribute表示的數據對象。web

  • 對事務處理實現(事務的生成、提交、回滾、掛起)

spring委託給具體的事務處理器實現。實現了一個抽象和適配。適配的具體事務處理器:DataSource數據源支持、hibernate數據源事務處理支持、JDO數據源事務處理支持,JPA、JTA數據源事務處理支持。這些支持都是經過設計PlatformTransactionManager、AbstractPlatforTransaction一系列事務處理的支持。 爲經常使用數據源支持提供了一系列的TransactionManager。面試

  • 結合

PlatformTransactionManager實現了TransactionInterception接口,讓其與TransactionProxyFactoryBean結合起來,造成一個Spring聲明式事務處理的設計體系。算法

7. Spring的單例實現原理

Spring框架對單例的支持是採用單例註冊表的方式進行實現的,而這個註冊表的緩存是HashMap對象,若是配置文件中的配置信息不要求使用單例,Spring會採用新建實例的方式返回對象實例。spring

8. 有哪些不一樣類型的IOC(依賴注入)?

  • 構造器依賴注入:構造器依賴注入在容器觸發構造器的時候完成,該構造器有一系列的參數,每一個參數表明注入的對象。
  • Setter方法依賴注入:首先容器會觸發一個無參構造函數或無參靜態工廠方法實例化對象,以後容器調用bean中的setter方法完成Setter方法依賴注入。
  • 註解注入:基於@Autowired的自動裝配,默認是根據類型注入,能夠用於構造器、字段、方法注入。

9. 你推薦哪一種依賴注入?構造器依賴注入仍是Setter方法依賴注入?

你能夠同時使用兩種方式的依賴注入,最好的選擇是使用構造器參數實現強制依賴注入,使用setter方法實現可選的依賴關係。數據庫

10.簡述一下Spring框架?

概念apache

  • Spring致力於Java EE應用的各類解決方案,是一款輕量級框架,大大簡化了Java企業級開發,提供了強大、穩定的功能。
  • Spring主要有兩個目標:一是讓先有技術更易於使用,二是促進良好的編程習慣(或者稱爲最佳實踐)

優勢編程

  • 輕量級:Spring在大小和透明性方面絕對屬於輕量級的,基礎版本的Spring框架大約只有2MB
  • 控制反轉(IOC):Spring使用控制反轉技術實現了鬆耦合。依賴被注入到對象,而不是建立或尋找依賴對象。
  • 方便解耦,簡化開發:Spring就是一個大工廠,能夠將全部對象建立和依賴關係維護,交給Spring管理
  • AOP編程的支持:Spring提供面向切面編程,能夠方便的實現對程序進行權限攔截、運行監控等功能
  • 聲明式事務的支持:只須要經過配置就能夠完成對事務的管理,而無需手動編程
  • 方便集成各類優秀框架:Spring不排斥各類優秀的開源框架,其內部提供了對各類優秀框架(如:Struts二、Hibernate、MyBatis、Quartz等)的直接支持
  • 下降JavaEE API的使用難度:Spring 對JavaEE開發中很是難用的一些API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些API應用難度大大下降

11.簡單介紹一下Spring七大模塊?

  • Spring Core:Core封裝包是框架的最基礎部分,提供IOC和依賴注入特性。這裏的基礎概念是BeanFactory,它提供對Factory模式的經典實現來消除對程序性單例模式的須要,並真正地容許你從程序邏輯中分離出依賴關係和配置。
  • Spring Context:構建於Core封裝包基礎上的 Context封裝包,提供了一種框架式的對象訪問方法,有些象JNDI註冊器。Context封裝包的特性得自於Beans封裝包,並添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式和Context的透明建立,好比說經過Servlet容器。
  • Spring DAO:DAO (Data Access Object)提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數據庫廠商特有的錯誤代碼。 而且,JDBC封裝包還提供了一種比編程性更好的聲明性事務管理方法,不只僅是實現了特定接口,並且對全部的POJOs(plain old Java objects)都適用。
  • Spring ORM:ORM 封裝包提供了經常使用的「對象/關係」映射APIs的集成層。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封裝包,能夠混合使用全部Spring提供的特性進行「對象/關係」映射,如前邊提到的簡單聲明性事務管理。
  • Spring AOP:Spring的 AOP 封裝包提供了符合AOP Alliance規範的面向方面的編程實現,讓你能夠定義,例如方法攔截器(method-interceptors)和切點(pointcuts),從邏輯上講,從而減弱代碼的功能耦合,清晰的被分離開。並且,利用source-level的元數據功能,還能夠將各類行爲信息合併到你的代碼中。
  • Spring Web:Spring中的 Web 包提供了基礎的針對Web開發的集成特性,例如多方文件上傳,利用Servlet listeners進行IOC容器初始化和針對Web的ApplicationContext。當與WebWork或Struts一塊兒使用Spring時,這個包使Spring可與其餘框架結合。
  • Spring Web MVC:Spring中的MVC封裝包提供了Web應用的Model-View-Controller(MVC)實現。Spring的MVC框架並非僅僅提供一種傳統的實現,它提供了一種清晰的分離模型,在領域模型代碼和Web Form之間。而且,還能夠藉助Spring框架的其餘特性。

12. Spring中的設計模式

spring中經常使用的設計模式達到九種,咱們舉例說明:

第一種:簡單工廠

又叫作靜態工廠方法(StaticFactory Method)模式,但不屬於23種GOF設計模式之一。 簡單工廠模式的實質是由一個工廠類根據傳入的參數,動態決定應該建立哪個產品類。 spring中的BeanFactory就是簡單工廠模式的體現,根據傳入一個惟一的標識來得到bean對象,可是否是在傳入參數後建立仍是傳入參數前建立這個要根據具體狀況來定。

第二種:工廠方法(Factory Method)

一般由應用程序直接使用new建立新的對象,爲了將對象的建立和使用相分離,採用工廠模式,即應用程序將對象的建立及初始化職責交給工廠對象。通常狀況下,應用程序有本身的工廠對象來建立bean.若是將應用程序本身的工廠對象交給Spring管理,那麼Spring管理的就不是普通的bean,而是工廠Bean。

第三種:單例模式(Singleton)

保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。
spring中的單例模式完成了後半句話,即提供了全局的訪問點BeanFactory。但沒有從構造器級別去控制單例,這是由於spring管理的是是任意的java對象。

第四種:適配器(Adapter)

在Spring的Aop中,使用的Advice(通知)來加強被代理類的功能。Spring實現這一AOP功能的原理就使用代理模式(一、JDK動態代理。二、CGLib字節碼生成技術代理。)對類進行方法級別的切面加強,即,生成被代理類的代理類, 並在代理類的方法前,設置攔截器,經過執行攔截器重的內容加強了代理方法的功能,實現的面向切面編程。

第五種:包裝器(Decorator)

在咱們的項目中遇到這樣一個問題:咱們的項目須要鏈接多個數據庫,並且不一樣的客戶在每次訪問中根據須要會去訪問不一樣的數據庫。咱們以往在spring和hibernate框架中老是配置一個數據源,於是sessionFactory的dataSource屬性老是指向這個數據源而且恆定不變,全部DAO在使用sessionFactory的時候都是經過這個數據源訪問數據庫。可是如今,因爲項目的須要,咱們的DAO在訪問sessionFactory的時候都不得不在多個數據源中不斷切換,問題就出現了:如何讓sessionFactory在執行數據持久化的時候,根據客戶的需求可以動態切換不一樣的數據源?咱們能不能在spring的框架下經過少許修改獲得解決?是否有什麼設計模式能夠利用呢? 首先想到在spring的applicationContext中配置全部的dataSource。這些dataSource多是各類不一樣類型的,好比不一樣的數據庫:Oracle、SQL Server、MySQL等,也多是不一樣的數據源:好比apache 提供的org.apache.commons.dbcp.BasicDataSource、spring提供的org.springframework.jndi.JndiObjectFactoryBean等。而後sessionFactory根據客戶的每次請求,將dataSource屬性設置成不一樣的數據源,以到達切換數據源的目的。
spring中用到的包裝器模式在類名上有兩種表現:一種是類名中含有Wrapper,另外一種是類名中含有Decorator。基本上都是動態地給一個對象添加一些額外的職責。

第六種:代理(Proxy)

爲其餘對象提供一種代理以控制對這個對象的訪問。 從結構上來看和Decorator模式相似,但Proxy是控制,更像是一種對功能的限制,而Decorator是增長職責。
spring的Proxy模式在aop中有體現,好比JdkDynamicAopProxy和Cglib2AopProxy。

第七種:觀察者(Observer)

定義對象間的一種一對多的依賴關係,當一個對象的狀態發生改變時,全部依賴於它的對象都獲得通知並被自動更新。
spring中Observer模式經常使用的地方是listener的實現。如ApplicationListener。

第八種:策略(Strategy)

定義一系列的算法,把它們一個個封裝起來,而且使它們可相互替換。本模式使得算法可獨立於使用它的客戶而變化。

第九種:模板方法(Template Method)

定義一個操做中的算法的骨架,而將一些步驟延遲到子類中。Template Method使得子類能夠不改變一個算法的結構便可重定義該算法的某些特定步驟。
Template Method模式通常是須要繼承的。這裏想要探討另外一種對Template Method的理解。spring中的JdbcTemplate,在用這個類時並不想去繼承這個類,由於這個類的方法太多,可是咱們仍是想用到JdbcTemplate已有的穩定的、公用的數據庫鏈接,那麼咱們怎麼辦呢?咱們能夠把變化的東西抽出來做爲一個參數傳入JdbcTemplate的方法中。可是變化的東西是一段代碼,並且這段代碼會用到JdbcTemplate中的變量。怎麼辦?那咱們就用回調對象吧。在這個回調對象中定義一個操縱JdbcTemplate中變量的方法,咱們去實現這個方法,就把變化的東西集中到這裏了。而後咱們再傳入這個回調對象到JdbcTemplate,從而完成了調用。這多是Template Method不須要繼承的另外一種實現方式吧。

13.ApplicationContext與BeanFactory的區別

二者都是經過xml配置文件加載bean,ApplicationContextBeanFacotry相比,提供了更多的擴展功能,但其主要區別在於後者是延遲加載,若是Bean的某一個屬性沒有注入,BeanFacotry加載後,直至第一次使用調用getBean方法纔會拋出異常;而ApplicationContext則在初始化自身是檢驗,這樣有利於檢查所依賴屬性是否注入;因此一般狀況下咱們選擇使用ApplicationContext。

BeanFactroy採用的是延遲加載形式來注入Bean的,即只有在使用到某個Bean時(調用getBean()),纔對該Bean進行加載實例化,這樣,咱們就不能發現一些存在的Spring的配置問題。而ApplicationContext則相反,它是在容器啓動時,一次性建立了全部的Bean。這樣,在容器啓動時,咱們就能夠發現Spring中存在的配置錯誤。

BeanFactoryApplicationContext都支持BeanPostProcessorBeanFactoryPostProcessor的使用,但二者之間的區別是:BeanFactory須要手動註冊,而ApplicationContext則是自動註冊

14. 如何理解IoC和DI?

IOC:
IOC就是控制反轉,通俗的說就是咱們不用本身建立實例對象,這些都交給Spring的bean工廠幫咱們建立管理。這也是Spring的核心思想,經過面向接口編程的方式來是實現對業務組件的動態依賴。這就意味着IOC是Spring針對解決程序耦合而存在的。在實際應用中,Spring經過配置文件(xml或者properties)指定須要實例化的java類(類名的完整字符串),包括這些java類的一組初始化值,經過加載讀取配置文件,用Spring提供的方法(getBean())就能夠獲取到咱們想要的根據指定配置進行初始化的實例對象。

  • 優勢:IOC或依賴注入減小了應用程序的代碼量。它使得應用程序的測試很簡單,由於在單元測試中再也不須要單例或JNDI查找機制。簡單的實現以及較少的干擾機制使得鬆耦合得以實現。IOC容器支持勤性單例及延遲加載服務。

DI:DI—Dependency Injection,即「依賴注入」:組件之間依賴關係由容器在運行期決定,形象的說,即由容器動態的將某個依賴關係注入到組件之中。依賴注入的目的並不是爲軟件系統帶來更多功能,而是爲了提高組件重用的頻率,併爲系統搭建一個靈活、可擴展的平臺。經過依賴注入機制,咱們只須要經過簡單的配置,而無需任何代碼就可指定目標須要的資源,完成自身的業務邏輯,而不須要關心具體的資源來自何處,由誰實現。

15.介紹一下AOP相關術語?

  • 切面(Aspect):被抽取的公共模塊,可能會橫切多個對象。 在Spring AOP中,切面可使用通用類(基於模式的風格) 或者在普通類中以 @AspectJ 註解來實現。
  • 鏈接點(Join point):指方法,在Spring AOP中,一個鏈接點 老是 表明一個方法的執行。
  • 通知(Advice):在切面的某個特定的鏈接點(Join point)上執行的動做。通知有各類類型,其中包括「around」、「before」和「after」等通知。許多AOP框架,包括Spring,都是以攔截器作通知模型, 並維護一個以鏈接點爲中心的攔截器鏈。
  • 切入點(Pointcut):切入點是指 咱們要對哪些Join point進行攔截的定義。經過切入點表達式,指定攔截的方法,好比指定攔截add、search
  • 引入(Introduction):(也被稱爲內部類型聲明(inter-type declaration))。聲明額外的方法或者某個類型的字段。Spring容許引入新的接口(以及一個對應的實現)到任何被代理的對象。例如,你可使用一個引入來使bean實現 IsModified 接口,以便簡化緩存機制。
  • 目標對象(Target Object): 被一個或者多個切面(aspect)所通知(advise)的對象。也有人把它叫作 被通知(adviced) 對象。 既然Spring AOP是經過運行時代理實現的,這個對象永遠是一個 被代理(proxied) 對象。
  • 織入(Weaving):指把加強應用到目標對象來建立新的代理對象的過程。Spring是在運行時完成織入。

切入點(pointcut)和鏈接點(join point)匹配的概念是AOP的關鍵,這使得AOP不一樣於其它僅僅提供攔截功能的舊技術。 切入點使得定位通知(advice)可獨立於OO層次。 例如,一個提供聲明式事務管理的around通知能夠被應用到一組橫跨多個對象中的方法上(例如服務層的全部業務操做)。

AOP相關術語

16.你是如何理解Spring AOP?

概念

面向切面編程。AOP是OOP的延續,是軟件開發中的一個熱點,也是Spring框架中的一個重要內容,利用AOP能夠對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度下降,提升程序的可重用性,同時提升了開發的效率。

核心思想
能夠在不修改源代碼的前提下,對程序進行加強

實現原理
Spring框架的AOP技術底層也是採用的代理技術,所謂的動態代理就是說 AOP 框架不會去修改字節碼,而是在內存中臨時爲方法生成一個 AOP 對象,這個 AOP 對象包含了目標對象的所有方法,而且在特定的切點作了加強處理,並回調原對象的方法 。Spring AOP 中的動態代理主要有兩種方式, JDK 動態代理和 CGLIB 動態代理 。

  • JDK 動態代理:經過反射來接收被代理的類,而且要求被代理的類必須實現一個接口 。JDK 動態代理的核心是 InvocationHandler 接口和 Proxy 類 。
  • CGLIB動態代理: 若是目標類沒有實現接口,那麼 Spring AOP 會選擇使用 CGLIB 來動態代理目標類 。CGLIB ( Code Generation Library ),是一個代碼生成的類庫,能夠在運行時動態的生成某個類的子類,注意, CGLIB 是經過繼承的方式作的動態代理,所以若是某個類被標記爲 final ,那麼它是沒法使用 CGLIB 作動態代理的。

17. Spring中有哪些加強處理,區別?

  • 前置加強:org.springframework.aop.BeforeAdvice表明前置加強,表示在目標方法整形前實施加強
  • 後置加強:org.springframework.aop.AfterReturningAdvice表明後置加強,表示在目標方法執行後實施加強
  • 環繞加強:org.springframework.aop.MethodInterceptor表明環繞加強,表示在目標方法執行先後實施加強
  • 異常拋出加強 :org.springframework.aop.ThrowsAdvice表明拋出異常加強,表示在目標方法拋出異常後實施加強
  • 引介加強:org.springframework.aop.IntroductionInterceptor表明引介加強,表示在目標類中添加一些新的方法和屬性

18. Spring中支持的Bean做用域有哪些?

支持以下五種不一樣的做用域

  • Singleton(默認):在Spring IOC容器中僅存在一個Bean實例,Bean以單實例的方式存在。
  • Prototype:一個bean能夠定義多個實例
  • Request:每次HTTP請求都會建立一個新的Bean。該做用域僅適用於WebApplicationContext環境。
  • Session:一個HTTP Session定義一個Bean。該做用域僅適用於WebApplicationContext環境.
  • GolbalSession:同一個全局HTTP Session定義一個Bean。該做用域一樣僅適用於WebApplicationContext環境.

19.如何定義bean的做用域?

Spring中建立一個bean的時候,咱們能夠聲明它的做用域。只須要在bean定義的時候經過scope屬性定義便可。例如,當Spring須要產生每次一個新的bean實例時,應該聲明beanscope屬性爲prototype。若是每次你但願Spring返回一個實例,應該聲明beanscope屬性爲singleton

20.說一說Spring框架中的bean的生命週期?

  • Spring容器讀取XML文件中bean的定義並實例化bean。
  • Spring根據bean的定義設置屬性值。
  • 若是該Bean實現了BeanNameAware接口,Spring將bean的id傳遞給setBeanName()方法。
  • 若是該Bean實現了BeanFactoryAware接口,Spring將beanfactory傳遞給setBeanFactory()方法。
  • 若是任何bean BeanPostProcessors 和該bean相關,Spring調用postProcessBeforeInitialization()方法。
  • 若是該Bean實現了InitializingBean接口,調用Bean中的afterPropertiesSet方法。若是bean有初始化函數聲明,調用相應的初始化方法。
  • 若是任何bean BeanPostProcessors 和該bean相關,調用postProcessAfterInitialization()方法。
  • 若是該bean實現了DisposableBean,調用destroy()方法。

21.哪些是最重要的bean生命週期方法,是否能重寫它們?

有兩個重要的bean生命週期方法。

  • 第一個是setup方法,該方法在容器加載bean的時候被調用。
  • 第二個是teardown方法,該方法在bean從容器中移除的時候調用。

bean標籤有兩個重要的屬性(init-method 和 destroy-method),你能夠經過這兩個屬性定義本身的初始化方法和析構方法。
Spring也有相應的註解:@PostConstruct@PreDestroy

22.有幾種不一樣類型的自動代理?

BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
Metadata autoproxying

23. 什麼是Spring的內部bean?

當一個bean僅被用做另外一個bean的屬性時,它能被聲明爲一個內部bean,爲了定義inner bean,在Spring 的 基於XML的 配置元數據中,能夠在 或 元素內使用 元素,內部bean一般是匿名的,它們的Scope通常是prototype。

24. Spring中自動裝配的方式有哪些?

  • no:不進行自動裝配,手動設置Bean的依賴關係。
  • byName:根據Bean的名字進行自動裝配。
  • byType:根據Bean的類型進行自動裝配。
  • constructor:相似於byType,不過是應用於構造器的參數,若是正好有一個Bean與構造器的參數類型相同則能夠自動裝配,不然會致使錯誤。
  • autodetect:若是有默認的構造器,則經過constructor的方式進行自動裝配,不然使用byType的方式進行自動裝配。
說明:自動裝配沒有自定義裝配方式那麼精確,並且不能自動裝配簡單屬性(基本類型、字符串等),在使用時應注意。

25.你能夠在Spring中注入null或空字符串嗎?

徹底能夠。

26. 不一樣版本的 Spring Framework 有哪些主要功能?

Version Feature
Spring 2.5 發佈於 2007 年。這是第一個支持註解的版本。
Spring 3 發佈於 2009 年。它徹底利用了 Java5 中的改進,併爲 JEE6 提供了支持。
Spring 4.0 發佈於 2013 年。這是第一個徹底支持 JAVA8 的版本。。

27.spring DAO 有什麼用?

Spring DAO 使得 JDBC,Hibernate 或 JDO 這樣的數據訪問技術更容易以一種統一的方式工做。這使得用戶容易在持久性技術之間切換。它還容許您在編寫代碼時,無需考慮捕獲每種技術不一樣的異常。

28. 列舉 Spring DAO 拋出的異常。

spring-data-access-exception

29. spring JDBC API 中存在哪些類?

  • JdbcTemplate
  • SimpleJdbcTemplate
  • NamedParameterJdbcTemplate
  • SimpleJdbcInsert
  • SimpleJdbcCall

30.Spring AOP and AspectJ AOP 有什麼區別?

Spring AOP 基於動態代理方式實現;AspectJ 基於靜態代理方式實現。
Spring AOP 僅支持方法級別的 PointCut;提供了徹底的 AOP 支持,它還支持屬性級別的 PointCut。

推薦

大廠筆試內容集合(內有詳細解析) 持續更新中....

ProcessOn是一個在線做圖工具的聚合平臺~

文末

歡迎關注我的微信公衆號: Coder編程
歡迎關注 Coder編程公衆號,主要分享數據結構與算法、Java相關知識體系、框架知識及原理、Spring全家桶、微服務項目實戰、DevOps實踐之路、每日一篇互聯網大廠面試或筆試題以及PMP項目管理知識等。更多精彩內容正在路上~
新建了一個qq羣:315211365,歡迎你們進羣交流一塊兒學習。謝謝了!也能夠介紹給身邊有須要的朋友。

文章收錄至
Github: https://github.com/CoderMerli...
Gitee: https://gitee.com/573059382/c...
歡迎關注並star~
微信公衆號

相關文章
相關標籤/搜索