国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

spring工程的啟動流程?bean的生命周期?提供哪些擴展點?管理事務(wù)?解決循環(huán)依賴問題的?事務(wù)傳播行為有哪些?

這篇具有很好參考價值的文章主要介紹了spring工程的啟動流程?bean的生命周期?提供哪些擴展點?管理事務(wù)?解決循環(huán)依賴問題的?事務(wù)傳播行為有哪些?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.Spring工程的啟動流程:

Spring工程的啟動流程主要包括以下幾個步驟:

  • 加載配置文件:Spring會讀取配置文件(如XML配置文件或注解配置)來獲取應(yīng)用程序的配置信息。
  • 實例化并初始化IoC容器:Spring會創(chuàng)建并初始化IoC容器,即ApplicationContext。在這一步,Spring會解析配置文件,并將配置的Bean實例化。
  • 實例化并初始化Bean:Spring根據(jù)配置信息實例化Bean,并完成Bean的依賴注入和初始化(例如調(diào)用構(gòu)造函數(shù)、屬性設(shè)置和初始化回調(diào)等)。
  • 完成Bean的初始化:在所有Bean實例化后,Spring會執(zhí)行Bean的初始化回調(diào)方法(如果有定義的話)。
  • 應(yīng)用程序使用:容器啟動后,應(yīng)用程序可以使用通過容器管理的Bean來完成相應(yīng)的業(yè)務(wù)邏輯。

2.Spring Bean的生命周期:

Spring Bean的生命周期包括以下幾個階段:

  • 實例化:容器實例化Bean對象。
  • 屬性賦值:容器注入Bean的屬性值和依賴。
  • 初始化:Bean進行一些初始化操作,可以自定義初始化方法。
  • 使用:Bean可供應(yīng)用程序使用。
  • 銷毀:容器關(guān)閉時,銷毀Bean,可以自定義銷毀方法。

3.Spring給我們開發(fā)人員提供了哪些擴展點?

Spring提供了以下擴展點:

  • BeanPostProcessor:可以在Bean實例化和初始化前后對Bean進行自定義處理。
  • BeanFactoryPostProcessor:可以在容器實例化和配置所有Bean之后,對BeanFactory進行自定義處理。
  • InitializingBean和DisposableBean:用于在Bean的初始化和銷毀階段執(zhí)行一些額外操作。
  • @PostConstruct和@PreDestroy:通過注解方式定義Bean的初始化和銷毀方法。
  • BeanDefinitionRegistryPostProcessor:用于在Bean定義加載前對BeanDefinition進行自定義處理。

4.Spring如何管理事務(wù)?

Spring通過AOP(面向切面編程)和事務(wù)管理器來管理事務(wù)。

  • 在Spring中,我們可以通過@Transactional注解或XML配置來標(biāo)記事務(wù)的邊界。
  • 當(dāng)方法被@Transactional注解標(biāo)記時,Spring將為該方法創(chuàng)建一個事務(wù),并在方法執(zhí)行前后啟動和提交事務(wù)。如果方法拋出異常,則會回滾事務(wù)。Spring使用事務(wù)管理器來處理底層數(shù)據(jù)庫事務(wù)的提交和回滾。

5.Spring是如何解決循環(huán)依賴問題的?

Spring使用了三個主要的解決循環(huán)依賴的機制:

  • 提前暴露Bean(Early Bean Post-Processors):Spring容器在創(chuàng)建Bean實例的過程中,會提前暴露尚未完全初始化的Bean實例。這意味著在創(chuàng)建Bean的過程中,即使發(fā)生循環(huán)依賴,也能夠獲取到尚未初始化的Bean實例的引用,從而解決了循環(huán)依賴的問題。

  • 三級緩存(Three-Level Cache):Spring使用三級緩存來處理循環(huán)依賴。在創(chuàng)建Bean的過程中,Spring首先會將正在創(chuàng)建的Bean實例放入第一級緩存。然后,它會創(chuàng)建Bean的實例并放入第二級緩存,但在實例化之前,會解析依賴關(guān)系并注入尚未初始化的Bean引用。最后,當(dāng)Bean實例完全創(chuàng)建并初始化后,它會放入第三級緩存。通過使用三級緩存,Spring能夠在創(chuàng)建Bean實例的過程中解決循環(huán)依賴的問題。

  • 通過代理實現(xiàn)解決循環(huán)依賴(通過CGLIB創(chuàng)建代理對象):當(dāng)Spring檢測到循環(huán)依賴無法通過前兩種方式解決時,它會嘗試使用代理對象來解決循環(huán)依賴。對于需要循環(huán)依賴的Bean,Spring會創(chuàng)建一個代理對象來代替原始的Bean實例。當(dāng)其他Bean依賴于該Bean時,Spring會注入這個代理對象。代理對象在真正被調(diào)用時,會觸發(fā)Spring創(chuàng)建并注入真正的Bean實例,從而解決了循環(huán)依賴的問題。

6.Spring中的事務(wù)傳播行為有哪些?

Spring定義了以下事務(wù)傳播行為:
spring工程的啟動流程?bean的生命周期?提供哪些擴展點?管理事務(wù)?解決循環(huán)依賴問題的?事務(wù)傳播行為有哪些?,八股合集,spring,java,后端
required supports

REQUIRED:如果當(dāng)前存在事務(wù),則加入該事務(wù),如果不存在,則新建一個事務(wù)。
SUPPORTS:如果當(dāng)前存在事務(wù),則加入該事務(wù),如果不存在,則以非事務(wù)方式執(zhí)行。
MANDATORY:要求當(dāng)前存在事務(wù),如果不存在則拋出異常。
REQUIRES_NEW:新建一個事務(wù),并掛起當(dāng)前事務(wù)(如果存在)。
NOT_SUPPORTED:以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則掛起該事務(wù)。
NEVER:以非事務(wù)方式執(zhí)行,如果當(dāng)前存在事務(wù),則拋出異常。
NESTED:如果當(dāng)前存在事務(wù),則在嵌套事務(wù)中執(zhí)行,如果不存在,則執(zhí)行與REQUIRED相同的行為。文章來源地址http://www.zghlxwxcb.cn/news/detail-523848.html

到了這里,關(guān)于spring工程的啟動流程?bean的生命周期?提供哪些擴展點?管理事務(wù)?解決循環(huán)依賴問題的?事務(wù)傳播行為有哪些?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【框架源碼】Spring源碼解析之Bean生命周期流程

    【框架源碼】Spring源碼解析之Bean生命周期流程

    觀看本文前,我們先思考一個問題,什么是Spring的bean的生命周期?這也是我們在面試的時候,面試官常問的一個問題。 在沒有Spring之前,我們創(chuàng)建對象的時候,采用new的方式,當(dāng)對象不在被使用的時候,由Java的垃圾回收機制回收。 而 Spring 中的對象是 bean,bean 和普通的 J

    2024年02月09日
    瀏覽(21)
  • 【Spring 】執(zhí)行流程解析:了解Bean的作用域及生命周期

    【Spring 】執(zhí)行流程解析:了解Bean的作用域及生命周期

    ?哈嘍,哈嘍,大家好~ 我是你們的老朋友: 保護小周?? ? 今天給大家?guī)淼氖?Spring 項目的執(zhí)行流程解析? 和 Bean 對象的6 種作用域 以及 生命周期 , 本文將為大家講解,一起來看看叭~ 本期收錄于博主的專欄 :JavaEE_保護小周?的博客-CSDN博客 適用于編程初學(xué)者,感興趣

    2024年02月16日
    瀏覽(22)
  • @Autowired和@Resource注解之間的關(guān)系區(qū)別,Bean的作用域和生命周期,Spring的執(zhí)行流程

    @Autowired和@Resource注解之間的關(guān)系區(qū)別,Bean的作用域和生命周期,Spring的執(zhí)行流程

    目錄 一. @Autowired 和 @Resource 注解 二. Bean的作用域? 1.?singleton(單例模式) 2.?prototype(原型模式)(多例模式) 3. 請求作用域:request 4. 會話作用域:session 三. Spring 的執(zhí)行流程 四. Bean 的生命周期? ?1. 實例化 ?2. 設(shè)置屬性? 3. Bean 初始化?? ? ?3.1 執(zhí)行各種各種 Aware 通知;? ? ?

    2024年02月04日
    瀏覽(24)
  • 【Spring】—— bean生命周期

    1、初始化容器 1)創(chuàng)建對象(分配內(nèi)存) 2)執(zhí)行構(gòu)造方法 3)執(zhí)行屬性注入(set操作) 4)執(zhí)行bean初始化方法 2、使用bean 1)執(zhí)行業(yè)務(wù)操作 3、關(guān)閉/銷毀容器 1)執(zhí)行bean銷毀方法

    2024年02月02日
    瀏覽(28)
  • Spring bean 生命周期

    Spring bean 生命周期

    在互聯(lián)網(wǎng)領(lǐng)域中,Spring框架扮演著重要的角色。作為一個開源的Java應(yīng)用程序開發(fā)框架,Spring提供了一種靈活而強大的方式來構(gòu)建可擴展的應(yīng)用程序。Spring框架中的一個重要概念是Bean,它是Spring應(yīng)用程序的基本構(gòu)建塊之一。了解Spring Bean的生命周期對于充分利用Spring框架的功能

    2024年02月11日
    瀏覽(26)
  • Spring:Bean生命周期

    Spring:Bean生命周期

    Bean 生命周期 是 bean 對象從創(chuàng)建到銷毀的整個過程。 簡單的 Bean 生命周期的過程: 1.實例化(調(diào)用構(gòu)造方法對 bean 進行實例化) 2.依賴注入(調(diào)用 set 方法對 bean 進行賦值) 3.初始化(手動配置 xml 文件中 bean 標(biāo)簽的 init-method 屬性值,來指定調(diào)用對應(yīng)的初始化方法) 4.使用

    2024年02月13日
    瀏覽(27)
  • 【spring】spring bean的生命周期

    【spring】spring bean的生命周期

    spring bean的生命周期 簡介 本文測試并且介紹了spring中bean的生命周期,如果只想知道結(jié)果可以跳到最后一部分直接查看。 一、bean的創(chuàng)建階段 spring中的bean是何時創(chuàng)建的? 在spring中有一個非常重要的注解,叫做**@Scope**,這個注解是用來控制spring中的bean是否是單例的,一般情況

    2024年02月15日
    瀏覽(28)
  • Spring Bean的生命周期

    Spring Bean的生命周期

    Bean生命周期的整個執(zhí)行過程描述如下: 1、根據(jù)配置情況調(diào)用Bean構(gòu)造方法或工廠方法實例化 Bean。 2、利用依賴注入完成Bean中所有屬性值的配置注入。 3、如果Bean 實現(xiàn)了BeanNameAware 接口,則 Spring調(diào)用Bean的setBeanName()方法傳入當(dāng)前Bean的id值。 4、如果Bean實現(xiàn)了BeanFactoryAware 接口

    2023年04月22日
    瀏覽(35)
  • Spring -- Bean的生命周期

    Spring -- Bean的生命周期

    Spring容器在進行實例化時,會將xml配置的bean的信息封裝成一個BeanDefinition對象,Spring根據(jù)BeanDefinition來創(chuàng)建Bean對象,里面有很多的屬性用來描述Bean? ?BeanDefinition 中幾個重要方法如下 beanClassName:bean 的類名 initMethodName:初始化方法名稱 properryValues:bean 的屬性值 scope:作用域

    2024年02月15日
    瀏覽(35)
  • 【Spring】Spring的Bean的生命周期

    【Spring】Spring的Bean的生命周期

    作者簡介:大家好,我是五度魚,一個普通的Java領(lǐng)域博主,不停輸出Java技術(shù)博客和干貨 。 座右銘:鍥而不舍,金石可鏤 。 個人主頁:五度魚學(xué)Java的主頁 在 Java 中, Bean 是一個重要的概念,它代表了應(yīng)用程序中的一個對象。在開發(fā)中,我們經(jīng)常使用 Bean 來管理對象的生命

    2024年01月16日
    瀏覽(35)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包