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

生產(chǎn)項(xiàng)目中基于springboot項(xiàng)目解決循環(huán)依賴(lài)的三種方式

這篇具有很好參考價(jià)值的文章主要介紹了生產(chǎn)項(xiàng)目中基于springboot項(xiàng)目解決循環(huán)依賴(lài)的三種方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、springboot項(xiàng)目如何解決循環(huán)依賴(lài)

在生產(chǎn)項(xiàng)目中,可以使用Spring Boot框架來(lái)快速開(kāi)發(fā)Spring應(yīng)用程序。Spring Boot提供了一種方便的方式來(lái)創(chuàng)建獨(dú)立的,基于Spring的應(yīng)用程序,并且有著高度的自動(dòng)化配置和開(kāi)箱即用的特性。

可以使用@Lazy注解來(lái)控制Bean的延遲初始化,同時(shí)可以使用AOP切面編程來(lái)解決循環(huán)依賴(lài)問(wèn)題。具體步驟如下:

1.1、添加@Lazy注解

在需要延遲初始化的Bean上添加@Lazy注解,使其在容器啟動(dòng)時(shí)不會(huì)實(shí)例化。

@Service
@Lazy
public class UserService {
    @Autowired
    private UserController userController;
    // ...
}

1.2、使用@DependsOn,指定加載的順序

在依賴(lài)被初始化前需要注入的Bean上使用@DependsOn注解來(lái)指定Bean之間的依賴(lài)順序。

@RestController
@DependsOn("userService")
public class UserController {
    @Autowired
    private UserService userService;
    // ...
}

1.3、 使用AOP來(lái)實(shí)現(xiàn)Bean的代理

使用Spring AOP來(lái)實(shí)現(xiàn)Bean的代理、懶加載,從而避免循環(huán)依賴(lài)導(dǎo)致的問(wèn)題。其中,當(dāng)被代理的Bean被調(diào)用時(shí),Spring會(huì)先檢查是否已經(jīng)創(chuàng)建了該Bean的代理對(duì)象,如果存在,則直接返回代理對(duì)象,否則再進(jìn)行實(shí)例化并返回。

@Component
@Aspect
public class LazyInitAspect {
    private Map<String, Object> singletonObjects = new ConcurrentHashMap<>();

    @Around("@annotation(org.springframework.context.annotation.Lazy)")
    public Object lazyInit(ProceedingJoinPoint joinPoint) throws Throwable {
        String beanName = joinPoint.getSignature().getDeclaringType().getSimpleName();
        Object singletonObject = singletonObjects.get(beanName);
        if (singletonObject != null) {
            return singletonObject;
        }
        synchronized (this.singletonObjects) {
            singletonObject = singletonObjects.get(beanName);
            if (singletonObject == null) {
                singletonObject = joinPoint.proceed();
                singletonObjects.put(beanName, singletonObject);
            }
            return singletonObject;
        }
    }
}

以上是基于Spring Boot項(xiàng)目使用@Lazy和AOP解決循環(huán)依賴(lài)問(wèn)題的一種方式。需要注意的是,循環(huán)依賴(lài)會(huì)導(dǎo)致Bean的初始化順序變得復(fù)雜,因此在設(shè)計(jì)應(yīng)用程序時(shí)需要避免過(guò)度的復(fù)雜性。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-501258.html

到了這里,關(guān)于生產(chǎn)項(xiàng)目中基于springboot項(xiàng)目解決循環(huán)依賴(lài)的三種方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Gradle多模塊項(xiàng)目搭建完整教程,模塊互相依賴(lài),基于springboot開(kāi)發(fā)
  • springboot循環(huán)依賴(lài)

    springboot循環(huán)依賴(lài)

    2024年02月10日
    瀏覽(17)
  • springboot升級(jí)出現(xiàn)循環(huán)依賴(lài)問(wèn)題

    問(wèn)題從spring boot 2.3.12升級(jí)到2.6.15版本后,項(xiàng)目啟動(dòng)后訪問(wèn)報(bào)錯(cuò). The dependencies of some of the beans in the application context form a cycle. serviceCollectionIdCacheService ┌─────┐ | serviceProductInfoProviderImpl ↑ ↓ | serviceOfflineProviderImpl ↑ ↓ | serviceProductMappingProviderImpl └─────┘ Relying

    2024年02月15日
    瀏覽(16)
  • SpringBoot中循環(huán)依賴(lài)報(bào)錯(cuò)解決---The dependencies of some of the beans in the application context form a cycle

    SpringBoot中循環(huán)依賴(lài)報(bào)錯(cuò)解決---The dependencies of some of the beans in the application context form a cycle

    循環(huán)依賴(lài): 循環(huán)依賴(lài)就是循環(huán)引用,也就是兩個(gè)或則兩個(gè)以上的bean互相依賴(lài)對(duì)方,形成閉環(huán)。比如A類(lèi)中有B屬性,B類(lèi)中有A屬性 一、報(bào)錯(cuò)信息 The dependencies of some of the beans in the application context form a cycle: ?二、解決方案 1、修改配置文件 根據(jù)Action中的提示 不鼓勵(lì)依賴(lài)循環(huán)引用

    2024年02月11日
    瀏覽(26)
  • 解決IDEA新建springboot項(xiàng)目時(shí)不能導(dǎo)入maven依賴(lài)(右邊沒(méi)有maven窗口)

    解決IDEA新建springboot項(xiàng)目時(shí)不能導(dǎo)入maven依賴(lài)(右邊沒(méi)有maven窗口)

    1.問(wèn)題:今天在github上找了一個(gè)springboot項(xiàng)目,但是用idea打開(kāi)后發(fā)現(xiàn)不能導(dǎo)入maven依賴(lài),并且在IDEA右邊也沒(méi)有出現(xiàn)maven窗口,如下圖 ?2.解決方法:右鍵點(diǎn)擊pom.xml文件,然后點(diǎn)擊“Add as Maven Project”即可 ?此時(shí)發(fā)現(xiàn)右邊出現(xiàn)maven,然后在pom.xml中重新加載maven依賴(lài)即可 ?

    2024年02月14日
    瀏覽(103)
  • 關(guān)于SpringBoot中出現(xiàn)的循環(huán)依賴(lài)問(wèn)題

    環(huán)境: SpringBoot2.7.8 背景: 在增加出庫(kù)訂單時(shí)需要對(duì)物品表的的數(shù)量進(jìn)行修改 因此我在OutboundController中創(chuàng)建了幾個(gè)公共方法,并將其注入到Spring中,結(jié)果給我報(bào)了這一串錯(cuò)誤。 Description: The dependencies of some of the beans in the application context form a cycle: ┌──-──┐ | getGoodsNumber defi

    2024年02月11日
    瀏覽(13)
  • SpringBoot項(xiàng)目報(bào)錯(cuò):org.springframework.beans.factory.UnsatisfiedDependencyException依賴(lài)注入異常(已解決)

    SpringBoot項(xiàng)目報(bào)錯(cuò):org.springframework.beans.factory.UnsatisfiedDependencyException依賴(lài)注入異常(已解決)

    ? ? ?? 目錄 報(bào)錯(cuò)信息 可能原因 結(jié)論 ????????最近在學(xué)Spring Boot,今天在做Spring Boot + Mybatis Plus + Vue項(xiàng)目時(shí)啟動(dòng)后端報(bào)錯(cuò): ? ? ? ? 先看報(bào)錯(cuò)信息,說(shuō)出現(xiàn)了一個(gè) 依賴(lài)注入異常(UnsatisfiedDependencyException) ,在創(chuàng)建名為 \\\'loginController\\\' 的bean時(shí)出錯(cuò),并且問(wèn)題出現(xiàn)在字段 \\\'

    2024年02月11日
    瀏覽(25)
  • Springboot依賴(lài)注入Bean的三種方式,final+構(gòu)造器注入Bean

    @Autowired注解的一大使用場(chǎng)景就是Field Injection。 通過(guò)Java的反射機(jī)制實(shí)現(xiàn),所以private的成員也可以被注入具體的對(duì)象 優(yōu)點(diǎn) 代碼少,簡(jiǎn)潔明了。 新增依賴(lài)十分方便,不需要修改原有代碼 缺點(diǎn) 容易出現(xiàn)空指針異常。Field 注入允許構(gòu)建對(duì)象實(shí)例時(shí)依賴(lài)的對(duì)象為空,導(dǎo)致空指針異常

    2024年02月02日
    瀏覽(22)
  • spring 的循環(huán)依賴(lài)以及spring為什么要用三級(jí)緩存解決循環(huán)依賴(lài)

    spring 的循環(huán)依賴(lài)以及spring為什么要用三級(jí)緩存解決循環(huán)依賴(lài)

    ??????? bean的生命周期 ??????? 這里簡(jiǎn)單過(guò)一下 class -無(wú)參構(gòu)造 -普通對(duì)象 -依賴(lài)注入(對(duì)加了autowire等的屬性賦值) -初始化前-初始化 -初始化后(aop) -放入單例池的map(一級(jí)緩存) -bean對(duì)象 這里提一點(diǎn)單例bean單例bean 其實(shí)就是用mapbeanName,Bean對(duì)象創(chuàng)建的,多例bean就不

    2024年02月15日
    瀏覽(24)
  • Spring解決循環(huán)依賴(lài)

    Spring解決循環(huán)依賴(lài)

    目錄 什么是spring循環(huán)依賴(lài) 什么情況下循環(huán)依賴(lài)可以被處理? spring?如何解決循環(huán)依賴(lài) 創(chuàng)建A這個(gè)Bean的流程 答疑 疑問(wèn):在給B注入的時(shí)候?yàn)槭裁匆⑷胍粋€(gè)代理對(duì)象? 初始化的時(shí)候是對(duì)A對(duì)象本身進(jìn)行初始化,而容器中以及注入到B中的都是代理對(duì)象,這樣不會(huì)有問(wèn)題嗎? 三級(jí)

    2024年02月22日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包