国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) Java Java面試題 《面試八股文》之 Spring 18卷

《面試八股文》之 Spring 18卷

Aug 22, 2023 pm 03:55 PM
spring

「《面試八股文》之Spring 18卷」 又新鮮出爐了,這次整理了一下關(guān)於spring 的面試題,網(wǎng)上也翻了翻關(guān)於spring 的面試題,匯總了一下,基本上都在這裡了,當(dāng)然可能有些過(guò)於基本的概念我是直接整理到某一問(wèn)當(dāng)中了,就沒(méi)有單獨(dú)再開(kāi)設(shè)一問(wèn),祝大家面試順利~



  • 1.spring 中都用到了哪些設(shè)計(jì)模式?

  • #2.spring 中有哪些核心模組?

  • 3.說(shuō)一下你理解的IOC 是什麼?

  • 4.spring 中的IOC 容器有哪些?有什麼區(qū)別?

  • 5.那BeanFactory 和FactoryBean 又有什麼差別?

  • 6.@Repository、@Service、@Compent、@Controller它們有什麼差別?

  • 7.那麼DI 又是什麼?

  • 8.說(shuō)說(shuō)AOP 是什麼?

  • 9.動(dòng)態(tài)代理程式和靜態(tài)代理程式有什麼差別?

  • 10.JDK 動(dòng)態(tài)代理程式和CGLIB 代理程式有什麼不同?

  • 11.Spring AOP 和 AspectJ AOP 有什麼差別?

  • 12.spring 中Bean 的生命週期是怎樣的?

  • 13.spring 是怎麼解決循環(huán)依賴的?

  • #14.為什麼要使用三級(jí)緩存,二級(jí)快取不能解決嗎?

  • #15.@Autowired 和@Resource 有什麼區(qū)別?

  • 16.spring 事務(wù)隔離等級(jí)有哪些?

  • 17.spring 事務(wù)的傳播機(jī)制有哪些?

  • 18.springBoot 自動(dòng)組裝原理?


#

1.spring 中都用到了哪些設(shè)計(jì)模式?

《面試八股文》之 Spring 18卷
  • 「1.工廠設(shè)計(jì)模式」: 例如透過(guò)BeanFactory 和ApplicationContext 來(lái)生產(chǎn)Bean 物件
  • 「2.代理程式設(shè)計(jì)模式」: ?AOP的實(shí)作方式就是透過(guò)代理來(lái)實(shí)現(xiàn),Spring主要是使用JDK 動(dòng)態(tài)代理程式和CGLIB 代理程式
  • 「3.單例設(shè)計(jì)模式」: Spring 中的Bean預(yù)設(shè)都是單例的
  • “4.模板方法模式”: Spring 中jdbcTemplate 等以Template 結(jié)尾的對(duì)資料庫(kù)操作的類,都會(huì)使用到模板方法設(shè)計(jì)模式,一些通用的功能
  • 「5.包裝器設(shè)計(jì)模式」: 我們的專案需要連接多個(gè)資料庫(kù),而且不同的客戶在每次訪問(wèn)中根據(jù)需要會(huì)去訪問(wèn)不同的資料庫(kù)。這個(gè)模式讓我們可以根據(jù)客戶的需求能夠動(dòng)態(tài)切換不同的資料來(lái)源
  • 「6.觀察者模式」: Spring 事件驅(qū)動(dòng)模型觀察者模式的
  • 「7.適配器模式」:Spring AOP 的增強(qiáng)或通知(Advice)使用到了適配器模式

#2.spring 中有哪些核心模組?

《面試八股文》之 Spring 18卷
  • #1.「Spring Core」:Spring核心,它是框架最基礎(chǔ)的部分,提供IOC和依賴注入DI特性
  • #2.「Spring Context」:Spring上下文容器,它是BeanFactory 功能加強(qiáng)的一個(gè)子介面
  • 3.「Spring Web」:它提供Web應(yīng)用開(kāi)發(fā)的支援
  • #4.「Spring MVC」:它針對(duì)Web應(yīng)用中MVC思想的實(shí)作
  • 5.「Spring DAO」:提供對(duì)JDBC抽象層,簡(jiǎn)化了JDBC編碼,同時(shí),編碼更具有健壯性
  • #6.「Spring ORM」:它支援用於流行的ORM框架的整合,例如:Spring Hibernate、Spring iBatis、Spring JDO的整合等
  • 7.「Spring AOP」:即面向切面編程,它提供了與AOP聯(lián)盟相容的程式實(shí)作實(shí)作

#3.說(shuō)一下你所理解的IOC 是什麼?

《面試八股文》之 Spring 18卷

#首先IOC 是一個(gè)「容器」,是用來(lái)裝載物件的,它的核心思想就是「控制反轉(zhuǎn)」

那麼究竟「什麼是控制反轉(zhuǎn)」?

控制反轉(zhuǎn)就是說(shuō),「把物件的控制權(quán)交給了spring,由spring 容器進(jìn)行管理”,我們不進(jìn)行任何操作

那麼為「什麼需要控制反轉(zhuǎn)」?

我們想像一下,沒(méi)有控制反轉(zhuǎn)的時(shí)候,我們需要「自己去建立對(duì)象,配置對(duì)象」 ,也要「人工去處理物件與物件之間的各種複雜的依賴關(guān)係」,當(dāng)一個(gè)工程的量起來(lái)之後,這種關(guān)係的維持是非常令人頭痛的,所以就有了控制反轉(zhuǎn)這個(gè)概念,將物件的建立、配置等一系列操作交給spring 去管理,我們?cè)谑褂玫臅r(shí)候只要去取就好了

4.spring 中的IOC 容器有哪些?有什麼區(qū)別?

spring 主要提供了“兩種IOC 容器”,一種是“BeanFactory 」,還有一種是「ApplicationContext」

它們的差別就在於,BeanFactory 「只提供了最基本的實(shí)例化物件和拿物件的功能」 ,而ApplicationContext 是繼承了BeanFactory 所衍生出來(lái)的產(chǎn)物,是其子類,它的作用更加的強(qiáng)大,例如支援註解注入、國(guó)際化等功能

5.那BeanFactory 和FactoryBean 又有什麼差別?

這兩個(gè)是「不同的產(chǎn)物」

「BeanFactory 是IOC容器」,是用來(lái)承載物件的

「FactoryBean 是一個(gè)介面」,為Bean 提供了更靈活的方式,透過(guò)代理一個(gè)Bean對(duì)象,對(duì)方法前後做一些操作。

6.@Repository、@Service、@Compent、@Controller它們有什麼區(qū)別?

這四個(gè)註解的 「本質(zhì)都是一樣的,都是將被該註解標(biāo)識(shí)的物件放入spring 容器當(dāng)中,只是為了在使用上區(qū)分不同的應(yīng)用分層」

#
  • @Repository:dao層
  • @Service:service層
  • @Controller:controller層
  • @Compent:其他不屬於以上三層的統(tǒng)一使用該註解

7.那麼DI 又是什麼?

DI 就是依賴注入,其實(shí)和IOC 大致相同,只不過(guò)是「同一個(gè)概念使用了不同的角度去闡述」

DI 所描述的「重點(diǎn)在於依賴」,我們說(shuō)了「IOC 的核心功能就是在於程式執(zhí)行時(shí)動(dòng)態(tài)的向某個(gè)物件提供其他的依賴物件」,而這個(gè)功能就是靠DI 去完成的,例如我們需要注入一個(gè)物件A,而這個(gè)物件A 依賴一個(gè)物件B,那麼我們就需要把這個(gè)物件B 注入到物件A 中,這就是依賴注入

spring 中有三種注入方式

  • 介面注入
  • #建構(gòu)子注入
  • ##set注入

8.說(shuō)說(shuō)AOP 是什麼?

AOP 意為:

「面向切面編程,透過(guò)預(yù)編譯方式和運(yùn)行期間動(dòng)態(tài)代理實(shí)現(xiàn)程式功能的統(tǒng)一維護(hù)的一種技術(shù)」。

AOP 是

「OOP(物件導(dǎo)向程式設(shè)計(jì)) 的延續(xù)」,是 Spring 框架中的一個(gè)重要內(nèi)容,是函數(shù)式程式設(shè)計(jì)的衍生範(fàn)式。利用 AOP 可以對(duì)業(yè)務(wù)邏輯的各個(gè)部分進(jìn)行隔離,從而使得業(yè)務(wù)邏輯各部分之間的耦合度降低,提高程序的可重用性,同時(shí)提高了開(kāi)發(fā)的效率。

「AOP 實(shí)作主要分為兩類:」

《面試八股文》之 Spring 18卷

  • 「靜態(tài)AOP 實(shí)作」,AOP 框架「在編譯階段」「靜態(tài)AOP 實(shí)作」
    ,AOP 框架
  • 「在編譯階段」
  • 對(duì)程式原始碼進(jìn)行修改,產(chǎn)生了靜態(tài)的AOP 代理類別(產(chǎn)生的*.class 檔案已經(jīng)被改掉了,需要使用特定的編譯器),例如AspectJ
    「動(dòng)態(tài)AOP 實(shí)作」
    , AOP 框架
  • 「在運(yùn)行階段」
對(duì)動(dòng)態(tài)產(chǎn)生代理物件(在記憶體中以JDK 動(dòng)態(tài)代理,或CGlib 動(dòng)態(tài)地產(chǎn)生AOP 代理類別),如SpringAOP

#spring 中AOP 的實(shí)作是
「透過(guò)動(dòng)態(tài)代理實(shí)現(xiàn)的」《面試八股文》之 Spring 18卷,如果實(shí)作了介面就會(huì)使用JDK 動(dòng)態(tài)代理,否則就使用CGLIB 代理程式。

    「有5 種通知類型:」
  • 「@Before」
  • :在目標(biāo)方法呼叫前去通知
  • “@AfterReturning”
  • :在目標(biāo)方法回傳或異常後呼叫
  • “@AfterThrowing”
  • :在目標(biāo)方法返回後呼叫
  • #“@After”
  • :在目標(biāo)方法異常後呼叫
  • “@Around”
:將目標(biāo)方法封裝起來(lái),自己決定呼叫時(shí)機(jī)

9.動(dòng)態(tài)代理程式和靜態(tài)代理有什麼差別?

###「靜態(tài)代理程式」######
  • 由程式設(shè)計(jì)師建立或由特定工具自動(dòng)產(chǎn)生原始程式碼,再對(duì)其編譯。在程式運(yùn)行前,代理類別的.class檔案就已經(jīng)存在了
  • 靜態(tài)代理通常只代理一個(gè)類別
  • 靜態(tài)代理事先知道要代理的是什麼

「動(dòng)態(tài)代理程式」

  • #在程式執(zhí)行時(shí),運(yùn)用反射機(jī)制動(dòng)態(tài)建立而成
  • 動(dòng)態(tài)代理程式是代理程式一個(gè)介面下的多個(gè)實(shí)作類別
  • #動(dòng)態(tài)代理程式不知道要代理什麼東西,只有在執(zhí)行時(shí)才知道

10.JDK 動(dòng)態(tài)代理程式和CGLIB 代理程式有什麼差別?

JDK 動(dòng)態(tài)代理程式時(shí)業(yè)務(wù)類別「必須要實(shí)作某個(gè)介面」,它是「基於反射的機(jī)制實(shí)現(xiàn)的」,產(chǎn)生一個(gè)實(shí)現(xiàn)同樣介面的一個(gè)代理類,然後透過(guò)重寫(xiě)方法的方式,實(shí)現(xiàn)對(duì)程式碼的增強(qiáng)。

CGLIB 動(dòng)態(tài)代理程式是使用字節(jié)碼處理框架ASM,其原理是透過(guò)字節(jié)碼技術(shù)為一個(gè)類別「建立子類,然後重寫(xiě)父類的方法」,實(shí)現(xiàn)對(duì)程式碼的增強(qiáng)。

11.Spring AOP 和 AspectJ AOP 有什麼不同?

Spring AOP 是運(yùn)行時(shí)增強(qiáng),是透過(guò)「動(dòng)態(tài)代理實(shí)作」

AspectJ AOP 是編譯時(shí)增強(qiáng),需要特殊的編譯器才可以完成,是透過(guò)「修改程式碼來(lái)實(shí)現(xiàn)」的,支援「三種織入方式」

  • 「編譯時(shí)織入」:就是在編譯字節(jié)碼的時(shí)候織入相關(guān)代理類別
  • 「編譯後織入」:編譯完初始類別後發(fā)現(xiàn)需要AOP 增強(qiáng),然後織入相關(guān)程式碼
  • 「類別載入時(shí)織入」 :指在載入器載入類別的時(shí)候織入
《面試八股文》之 Spring 18卷
編譯時(shí)、編譯後、類別載入時(shí)
主要差異 Spring AOP AspecjtJ AOP
#增強(qiáng)方式 在執(zhí)行階段增強(qiáng)
#實(shí)作方式 動(dòng)態(tài)代理程式 修改程式碼
編譯器 javac #特殊的編譯器ajc
效率 較低(運(yùn)行時(shí)反射損耗效能) 較高
#執(zhí)行時(shí)期
#######

12.spring 中Bean 的生命週期是怎樣的?

SpringBean 生命週期大致分為4個(gè)階段:

《面試八股文》之 Spring 18卷
  • 1.「實(shí)例化」,實(shí)例化該Bean 物件
  • 2.「填充屬性」,給該Bean 賦值
  • 3.「初始化」
    • 如果實(shí)作了Aware 接口,會(huì)透過(guò)其介面取得容器資源
    • 如果實(shí)作了BeanPostProcessor 接口,則會(huì)回調(diào)該介面的前置和後置處理增強(qiáng)
    • #如果配置了init-method 方法,]會(huì)執(zhí)行該方法
  • #4.「銷毀」
    • 如果實(shí)作了DisposableBean 接口,則會(huì)回呼該介面的destroy 方法
    • 如果配置了destroy-method 方法,則會(huì)執(zhí)行destroy -method 設(shè)定的方法

#13.spring 是怎麼解決循環(huán)依賴的?

《面試八股文》之 Spring 18卷

循環(huán)依賴就是說(shuō)兩個(gè)物件相互依賴,形成了一個(gè)環(huán)形的呼叫連結(jié)

spring 使用三級(jí)快取去解決循環(huán)依賴的,其「核心邏輯就是把實(shí)例化和初始化的步驟分開(kāi),然後放入快取中」,供另一個(gè)物件呼叫

  • 「第一層快取」:用來(lái)保存實(shí)例化、初始化都完成的物件
  • 「第二級(jí)快取」:用來(lái)保存實(shí)例化完成,但是未初始化完成的物件
  • #「第三級(jí)快取」:用來(lái)保存一個(gè)物件工廠,提供一個(gè)匿名內(nèi)部類,用於建立二級(jí)快取中的物件

#當(dāng)A、B 兩個(gè)類別發(fā)生循環(huán)引用時(shí)大致流程

  • #1.A 完成實(shí)例化後,去「建立一個(gè)物件工廠,放入三級(jí)快取」當(dāng)中
    • 如果A 被AOP 代理,那麼透過(guò)這個(gè)工廠取得到的就是A 代理後的物件
    • 如果A 沒(méi)有被AOP 代理,那麼這個(gè)工廠取得到的就是A 實(shí)例化的物件
  • 2.A 進(jìn)行屬性注入時(shí),去「建立B」
  • 3. B 進(jìn)行屬性注入,需要A ,則「從三級(jí)快取去取A 工廠代理物件」並注入,然後刪除三級(jí)快取中的A 工廠,將A 物件放入二級(jí)快取
  • 4.B 完成後續(xù)屬性注入,直到初始化結(jié)束,將B 放入一級(jí)快取
  • ##5.
    「A 從一級(jí)快取中取到B 並且注入B”, 直到完成後續(xù)操作,將A 從二級(jí)快取刪除並且放入一級(jí)緩存,循環(huán)依賴結(jié)束

spring 解決循環(huán)依賴有兩個(gè)前提條件:

  • 1.「不全是建構(gòu)器方式」的循環(huán)依賴(否則無(wú)法分離初始化和實(shí)例化的操作)
  • 2.「必須是單例」(否則無(wú)法保證是同一物件)

#14.為什麼要使用三級(jí)緩存,二級(jí)緩存不能解決嗎?

可以,三級(jí)緩存的功能是只有真正發(fā)生循環(huán)依賴的時(shí)候,才去提前生成代理對(duì)象,否則只會(huì)“創(chuàng)建一個(gè)工廠並將其放入到三級(jí)緩存”中,但是不會(huì)去通過(guò)這個(gè)工廠去真正創(chuàng)建物件。

如果使用二級(jí)快取解決循環(huán)依賴,意味著所有Bean 在實(shí)例化後就要完成AOP 代理,這樣「違背了Spring 設(shè)計(jì)的原則」,Spring 在設(shè)計(jì)之初是在Bean 生命週期的最後一步來(lái)完成AOP 代理,而不是在實(shí)例化後就立刻進(jìn)行AOP 代理。

15.@Autowired 和@Resource 有什麼差別?

  • ##「@Resource是Java 自己的註解”,@Resource 有兩個(gè)屬性是比較重要的,分是name 和type;Spring 將@Resource 註解的name 屬性解析為bean 的名字,而type 屬性則解析為bean 的類型。所以如果使用 name 屬性,則使用 byName 的自動(dòng)注入策略,而使用 type 屬性時(shí)則使用 byType 自動(dòng)注入策略。如果既不指定 name 也不指定 type 屬性,這時(shí)將透過(guò)反射機(jī)制使用 byName 自動(dòng)注入策略。

  • 「@Autowired 是spring 的註解」,是spring2.5 版本引入的,Autowired 只根據(jù)type 進(jìn)行注入,“不會(huì)去匹配name”。如果涉及到 type 無(wú)法辨別注入物件時(shí),那需要依賴 @Qualifier 或 @Primary 註解一起來(lái)修飾。

16.spring 交易隔離等級(jí)有哪些?

《面試八股文》之 Spring 18卷
  • DEFAULT:採(cǎi)用DB 預(yù)設(shè)的交易隔離等級(jí)
  • READ_UNCOMMITTED:讀取未提交
  • READ_COMMITTED:讀取已提交
  • REPEATABLE_READ:可重複讀取
  • SERIALIZABLE:序列化

《面試八股文》之 Spring 18卷
    • ##17.spring 交易的傳播機(jī)制有哪些?
      ################1.###「propagation_required」####### ############目前方法###「必須在一個(gè)具有事務(wù)的上下文中運(yùn)行」###,如有客戶端有事務(wù)在進(jìn)行,那麼被呼叫端將在該事務(wù)中運(yùn)行,否則的話重新開(kāi)啟一個(gè)事務(wù)。(如果被呼叫端發(fā)生異常,那麼呼叫端和被呼叫端事務(wù)都會(huì)回滾)
  • #2.「propagation_supports」
    • #目前方法不必需要有一個(gè)交易上下文,但是如果有一個(gè)交易的話,它也可以在這個(gè)交易中運(yùn)行
  • 3.“propagation_mandatory”
    • #表示目前方法「必須在一個(gè)事務(wù)中運(yùn)行」,如果沒(méi)有事務(wù),將拋出例外
  • 4.「propagation_nested」
    • 如果目前方法正有一個(gè)事務(wù)在運(yùn)行中,則該方法應(yīng)該“運(yùn)行在一個(gè)巢狀事務(wù)”中,被嵌套的事務(wù)可以獨(dú)立於被封裝的事務(wù)中進(jìn)行提交或回滾。如果封裝事務(wù)存在,且外層事務(wù)拋出異?;貪L,那麼內(nèi)層事務(wù)必須回滾,反之,內(nèi)層事務(wù)並不影響外層事務(wù)。如果封裝交易不存在,則同propagation_required的一樣
  • #5.「propagation_never」
    • 當(dāng)方法務(wù)不應(yīng)該在一個(gè)事務(wù)中運(yùn)行,如果“存在一個(gè)事務(wù),則拋出異?!?/section>
  • 6. “propagation_requires_new”
    • ###目前方法###“必須運(yùn)行在它自己的交易中”###。一個(gè)新的事務(wù)將啟動(dòng),而且如果有一個(gè)現(xiàn)有的事務(wù)在運(yùn)行的話,則這個(gè)方法將在運(yùn)行期被掛起,直到新的事務(wù)提交或回滾才恢復(fù)執(zhí)行。 ###############7.###「propagation_not_supported」##################方法不應(yīng)該在一個(gè)交易中運(yùn)作。「如果有一個(gè)交易正在運(yùn)行,他將在運(yùn)行期被掛起,直到這個(gè)事務(wù)提交或回滾才恢復(fù)執(zhí)行」

18.springBoot 自動(dòng)組裝原理?

《面試八股文》之 Spring 18卷
  • #1.容器在啟動(dòng)的時(shí)候會(huì)呼叫EnableAutoConfigurationImportSelector.class 的selectImports方法「取得一個(gè)全面的常用BeanConfiguration 清單」

  • #2.之後會(huì)讀取spring-boot-

  • #2.之後會(huì)讀取spring-boot-
  • #2. autoconfigure.jar 下面的spring.factories,

    「取得所有的Spring 相關(guān)的Bean 的全限定名ClassName」
  • ##3.之後繼續(xù)「呼叫filter 來(lái)一一篩選」

    ,過(guò)濾掉一些我們不需要不符合條件的Bean
########4.最後把符合條件的BeanConfiguration 注入預(yù)設(shè)的EnableConfigurationPropertie 類別裡面的屬性值,並且###「注入到IOC 環(huán)境當(dāng)中」###############

以上是《面試八股文》之 Spring 18卷的詳細(xì)內(nèi)容。更多資訊請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話題

Laravel 教程
1601
29
PHP教程
1502
276
編程新範(fàn)式,當(dāng)Spring Boot遇上OpenAI 編程新範(fàn)式,當(dāng)Spring Boot遇上OpenAI Feb 01, 2024 pm 09:18 PM

2023年,AI技術(shù)已成為熱門(mén)話題,對(duì)各行業(yè)產(chǎn)生了巨大影響,程式設(shè)計(jì)領(lǐng)域尤其如此。人們?cè)絹?lái)越認(rèn)識(shí)到AI技術(shù)的重要性,Spring社群也不例外。隨著GenAI(GeneralArtificialIntelligence)技術(shù)的不斷進(jìn)步,簡(jiǎn)化具備AI功能的應(yīng)用程式的創(chuàng)建變得至關(guān)重要和迫切。在這個(gè)背景下,"SpringAI"應(yīng)運(yùn)而生,旨在簡(jiǎn)化開(kāi)發(fā)AI功能應(yīng)用程式的過(guò)程,使其變得簡(jiǎn)單直觀,避免不必要的複雜性。透過(guò)"SpringAI",開(kāi)發(fā)者可以更輕鬆地建立具備AI功能的應(yīng)用程序,將其變得更加易於使用和操作

利用Spring Boot以及Spring AI建構(gòu)生成式人工智慧應(yīng)用 利用Spring Boot以及Spring AI建構(gòu)生成式人工智慧應(yīng)用 Apr 28, 2024 am 11:46 AM

Spring+AI作為行業(yè)領(lǐng)導(dǎo)者,透過(guò)其強(qiáng)大、靈活的API和先進(jìn)的功能,為各種行業(yè)提供了領(lǐng)先性的解決方案。在本專題中,我們將深入探討Spring+AI在各領(lǐng)域的應(yīng)用範(fàn)例,每個(gè)案例都將展示Spring+AI如何滿足特定需求,實(shí)現(xiàn)目標(biāo),並將這些LESSONSLEARNED擴(kuò)展到更廣泛的應(yīng)用。希望這個(gè)專題能對(duì)你有所啟發(fā),更深入地理解和利用Spring+AI的無(wú)限可能。 Spring框架在軟體開(kāi)發(fā)領(lǐng)域已經(jīng)有超過(guò)20年的歷史,自SpringBoot1.0版本發(fā)布以來(lái)已有10年?,F(xiàn)在,無(wú)人會(huì)質(zhì)疑,Spring

spring編程式事務(wù)有哪些實(shí)作方式 spring編程式事務(wù)有哪些實(shí)作方式 Jan 08, 2024 am 10:23 AM

spring編程式事務(wù)的實(shí)作方式:1、使用TransactionTemplate;2、使用TransactionCallback和TransactionCallbackWithoutResult;3、使用Transactional註解;4、使用TransactionTemplate和@Transactional結(jié)合使用;5、自訂事務(wù)管理器。

Java?Spring怎麼實(shí)現(xiàn)定時(shí)任務(wù) Java?Spring怎麼實(shí)現(xiàn)定時(shí)任務(wù) May 24, 2023 pm 01:28 PM

java實(shí)作定時(shí)任務(wù)Jdk自帶的函式庫(kù)中,有兩種??方式可以實(shí)作定時(shí)任務(wù),一種是Timer,另一種是ScheduledThreadPoolExecutor。 Timer+TimerTask建立一個(gè)Timer就建立了一個(gè)線程,可以用來(lái)調(diào)度TimerTask任務(wù)Timer有四個(gè)建構(gòu)方法,可以指定Timer線程的名字以及是否設(shè)定為守護(hù)線程。預(yù)設(shè)名字Timer-編號(hào),預(yù)設(shè)不是守護(hù)線程。主要有三種比較重要的方法:cancel():終止任務(wù)調(diào)度,取消目前調(diào)度的所有任務(wù),正在運(yùn)行的任務(wù)不受影響purge():從任務(wù)團(tuán)隊(duì)

Spring如何設(shè)定事務(wù)隔離級(jí)別 Spring如何設(shè)定事務(wù)隔離級(jí)別 Jan 26, 2024 pm 05:38 PM

Spring設(shè)定事務(wù)隔離等級(jí)的方法:1、使用@Transactional註解;2、在Spring設(shè)定檔中設(shè)定;3、使用PlatformTransactionManager;4、在Java配置類別中設(shè)定。詳細(xì)介紹:1、使用@Transactional註解,在需要進(jìn)行事務(wù)管理的類別或方法上加入@Transactional註解,並在屬性中設(shè)定隔離等級(jí);2、在Spring設(shè)定檔等等。

Spring Boot與Spring Cloud的差異與聯(lián)繫 Spring Boot與Spring Cloud的差異與聯(lián)繫 Jun 22, 2023 pm 06:25 PM

SpringBoot和SpringCloud都是SpringFramework的擴(kuò)展,它們可以幫助開(kāi)發(fā)人員更快地建置和部署微服務(wù)應(yīng)用程序,但它們各自有不同的用途和功能。 SpringBoot是一個(gè)快速建立Java應(yīng)用程式的框架,讓開(kāi)發(fā)人員可以更快地建立和部署基於Spring的應(yīng)用程式。它提供了一個(gè)簡(jiǎn)單、易於理解的方式來(lái)建立獨(dú)立的、可執(zhí)行的Spring應(yīng)用

詳解Spring中的Bean取得方式 詳解Spring中的Bean取得方式 Dec 30, 2023 am 08:49 AM

Spring中Bean取得方式詳解在Spring框架中,Bean的取得是非常重要的一環(huán)。在應(yīng)用程式中,我們經(jīng)常需要使用依賴注入或動(dòng)態(tài)來(lái)取得Bean的實(shí)例。本文將詳細(xì)介紹Spring中Bean的取得方式,並給出具體的程式碼範(fàn)例。透過(guò)@Component註解取得Bean@Component註解是Spring框架中常用的註解之一。我們可以透過(guò)在類別上新增@Compone

從零開(kāi)始學(xué)Spring Cloud 從零開(kāi)始學(xué)Spring Cloud Jun 22, 2023 am 08:11 AM

作為一名Java開(kāi)發(fā)者,學(xué)習(xí)和使用Spring框架已經(jīng)是一項(xiàng)必不可少的技能。而隨著雲(yún)端運(yùn)算和微服務(wù)的盛行,學(xué)習(xí)和使用SpringCloud成為了另一個(gè)必須掌握的技能。 SpringCloud是一個(gè)基於SpringBoot的用於快速建立分散式系統(tǒng)的開(kāi)發(fā)工具集。它為開(kāi)發(fā)者提供了一系列的元件,包括服務(wù)註冊(cè)與發(fā)現(xiàn)、配置中心、負(fù)載平衡和斷路器等,使得開(kāi)發(fā)者在建構(gòu)微

See all articles