中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

萬(wàn)網(wǎng)怎樣做網(wǎng)站調(diào)試專業(yè)地推團(tuán)隊(duì)電話

萬(wàn)網(wǎng)怎樣做網(wǎng)站調(diào)試,專業(yè)地推團(tuán)隊(duì)電話,b2b 網(wǎng)站開(kāi)發(fā),日本人做的搖滾網(wǎng)站SpringBoot 如何讓指定的Bean先加載 文章目錄 SpringBoot 如何讓指定的Bean先加載ApplicationContextInitializer使用啟動(dòng)入口出注冊(cè)配置文件中配置spring.factories中配置 BeanDefinitionRegistryPostProcessor使用 使用DependsOn注解實(shí)現(xiàn)SmartInitializingSingleton接口使用P…

SpringBoot 如何讓指定的Bean先加載

文章目錄

  • SpringBoot 如何讓指定的Bean先加載
    • `ApplicationContextInitializer`
      • 使用
        • 啟動(dòng)入口出注冊(cè)
        • 配置文件中配置
        • spring.factories中配置
    • `BeanDefinitionRegistryPostProcessor`
      • 使用
    • 使用@DependsOn注解
    • 實(shí)現(xiàn)SmartInitializingSingleton接口
    • 使用@PostConstruct注解

SpringBoot 中如何讓自己的某個(gè)指定的 Bean 在其他 Bean 前完成被 Spring 加載

ApplicationContextInitializer

  • 用于在spring容器刷新之前初始化Spring ConfigurableApplicationContext的回調(diào)接口。(在容器刷新之前調(diào)用該類的 initialize 方法。并將 ConfigurableApplicationContext 類的實(shí)例傳遞給該方法)
  • 通常用于需要對(duì)應(yīng)用程序上下文進(jìn)行編程初始化的web應(yīng)用程序中。例如,根據(jù)上下文環(huán)境注冊(cè)屬性源或激活配置文件等。
  • 通過(guò)實(shí)現(xiàn)ApplicationContextInitializer接口,開(kāi)發(fā)人員可以編程方式對(duì)應(yīng)用程序上下文進(jìn)行自定義配置。
  • 這在需要?jiǎng)討B(tài)設(shè)置屬性、注冊(cè)Bean定義或執(zhí)行其他初始化邏輯時(shí)非常有用。
public class CustomApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {@Overridepublic void initialize(ConfigurableApplicationContext applicationContext) {ConfigurableEnvironment environment = applicationContext.getEnvironment();// 注冊(cè)自定義Bean定義// applicationContext.registerBean("customBean", CustomBean.class);System.out.println("Custom initialization logic executed");}
}
  • CustomApplicationContextInitializer實(shí)現(xiàn)了ApplicationContextInitializer接口,并覆蓋了initialize方法。
  • initialize方法中,我們可以獲取應(yīng)用程序上下文的環(huán)境對(duì)象,并進(jìn)行自定義配置,如設(shè)置屬性或注冊(cè)Bean定義。

使用

啟動(dòng)入口出注冊(cè)
  • 要在Spring Boot應(yīng)用程序中使用ApplicationContextInitializer,可以將其注冊(cè)為Spring Boot應(yīng)用程序的一部分。例如,在Spring Boot應(yīng)用程序的main方法中,可以使用SpringApplication類的addInitializers方法將自定義的ApplicationContextInitializer添加到應(yīng)用程序中:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class MySpringBootApplication {public static void main(String[] args) {SpringApplication application = new SpringApplication(MySpringBootApplication.class);application.addInitializers(new CustomApplicationContextInitializer());application.run(args);}
}
配置文件中配置
context.initializer.classes=com.li.springbootproject.spring.other.CustomApplicationContextInitializer 
spring.factories中配置
  • SpringBootSPI擴(kuò)展---META-INF/spring.factories中配置
org.springframework.context.ApplicationContextInitializer=com.li.springbootproject.spring.other.CustomApplicationContextInitializer 

BeanDefinitionRegistryPostProcessor

  • BeanDefinitionRegistryPostProcessorSpring Boot 中的一個(gè)接口,它允許您在應(yīng)用程序上下文刷新之前修改 bean 定義。這對(duì)于注冊(cè)額外的 bean、修改現(xiàn)有 bean 定義或執(zhí)行其他自定義操作很有用。

使用

  • 創(chuàng)建一個(gè)實(shí)現(xiàn) BeanDefinitionRegistryPostProcessor 接口的類。
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;
import org.springframework.context.annotation.Configuration;@Configuration
public class MyBeanDefinitionRegistryPostProcessor implements BeanDefinitionRegistryPostProcessor {@Overridepublic void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) {// 在這里添加您的自定義邏輯,例如注冊(cè)新的 bean 或修改現(xiàn)有的 bean 定義BeanDefinition beanDefinition = new RootBeanDefinition(MyCustomBean.class);registry.registerBeanDefinition("myCustomBean", beanDefinition);}@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {// 通常不需要在此方法中執(zhí)行任何操作}
}
  • 創(chuàng)建了一個(gè)名為 MyBeanDefinitionRegistryPostProcessor 的類,它實(shí)現(xiàn)了 BeanDefinitionRegistryPostProcessor 接口。在 postProcessBeanDefinitionRegistry 方法中,我們注冊(cè)了一個(gè)名為 myCustomBean 的新 bean,它是 MyCustomBean 類的實(shí)例。

  • @Configuration 注解添加到您的 BeanDefinitionRegistryPostProcessor 實(shí)現(xiàn)類上。這將告訴 Spring Boot 在應(yīng)用程序上下文初始化期間自動(dòng)檢測(cè)和應(yīng)用該類。

  • 運(yùn)行Spring Boot 應(yīng)用程序。一旦應(yīng)用程序上下文初始化,就會(huì)自動(dòng)調(diào)用 postProcessBeanDefinitionRegistry 方法,從而允許修改 bean 定義。

請(qǐng)注意,在使用 BeanDefinitionRegistryPostProcessor 時(shí)要小心,因?yàn)樗赡軙?huì)影響應(yīng)用程序的其他部分。在修改 bean 定義時(shí),請(qǐng)確保您了解自己在做什么,并且知道潛在的副作用。

使用@DependsOn注解

  • @DependsOn 注解可以用在一個(gè) Bean 上,指定它依賴于另一個(gè) Bean。這樣一來(lái),Spring Boot 在初始化該 Bean 時(shí),會(huì)先初始化它所依賴的 Bean。
@Component
public class MyBean1 {// ...
}@Component
@DependsOn("myBean1")
public class MyBean2 {// ...
}

實(shí)現(xiàn)SmartInitializingSingleton接口

  • SmartInitializingSingleton接口在所有單例Bean都實(shí)例化之后調(diào)用,可以在該接口的afterSingletonsInstantiated方法中執(zhí)行一些特定的操作。可以實(shí)現(xiàn)該接口并在方法中指定需要先加載的Bean的初始化邏輯。
@Component
public class MyBean implements SmartInitializingSingleton {@Overridepublic void afterSingletonsInstantiated() {// 在所有單例Bean實(shí)例化之后執(zhí)行初始化邏輯}
}

使用@PostConstruct注解

  • @PostConstruct注解用于指定在Bean初始化之后立即執(zhí)行的方法。您可以在需要先加載的Bean的初始化方法上使用@PostConstruct注解。
@Component
public class MyBean {@PostConstructpublic void init() {// 在Bean初始化后執(zhí)行的邏輯}
}
Construct`注解。```java
@Component
public class MyBean {@PostConstructpublic void init() {// 在Bean初始化后執(zhí)行的邏輯}
}
http://www.risenshineclean.com/news/7697.html

相關(guān)文章:

  • 上海做網(wǎng)站公司google推廣服務(wù)商
  • 威海做網(wǎng)站的百度鏈接收錄
  • 好上手的做海報(bào)網(wǎng)站人工智能培訓(xùn)機(jī)構(gòu)
  • php框架做網(wǎng)站的好處視頻號(hào)排名優(yōu)化帝搜軟件
  • 在喵窩網(wǎng)站怎么做圖無(wú)排名優(yōu)化
  • 現(xiàn)在做網(wǎng)站用什么工具直播:英格蘭vs法國(guó)
  • 通過(guò)域名打開(kāi)網(wǎng)站是做映射么保健品的營(yíng)銷及推廣方案
  • 中企動(dòng)力科技股份有限公司南通分公司seo應(yīng)該如何做
  • 分類信息網(wǎng)站怎么做SEOseo營(yíng)銷培訓(xùn)咨詢
  • 設(shè)計(jì)雜志官網(wǎng)seo技術(shù)助理
  • asp.net網(wǎng)站打不開(kāi)html頁(yè)面月嫂免費(fèi)政府培訓(xùn)中心
  • 住房和城鄉(xiāng)建設(shè)部網(wǎng)站登錄平臺(tái)推廣網(wǎng)站
  • 網(wǎng)站建設(shè)主要做什么官網(wǎng)seo優(yōu)化
  • 網(wǎng)站建設(shè)下坡路江小白網(wǎng)絡(luò)營(yíng)銷案例
  • 網(wǎng)站建設(shè)方案批發(fā)網(wǎng)頁(yè)搜索引擎優(yōu)化技術(shù)
  • 手機(jī)終端網(wǎng)站國(guó)內(nèi)seo公司排名
  • 免費(fèi)網(wǎng)站建設(shè)ppt模板關(guān)鍵詞優(yōu)化是什么工作
  • 企業(yè)銷售網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷專業(yè)
  • wordpress地圖怎么實(shí)現(xiàn)seow是什么意思
  • 南山網(wǎng)站制作聯(lián)系電話站長(zhǎng)統(tǒng)計(jì)ios
  • 專業(yè)的網(wǎng)站建設(shè)seo常見(jiàn)優(yōu)化技術(shù)
  • wordpress調(diào)用欄目合肥優(yōu)化營(yíng)商環(huán)境
  • 電子商務(wù)查詢網(wǎng)站獨(dú)立站
  • 投資公司注冊(cè)需要什么資質(zhì)優(yōu)化模型的推廣
  • 國(guó)內(nèi)外畫畫做的好網(wǎng)站百度識(shí)圖網(wǎng)頁(yè)版在線
  • 國(guó)外html模板網(wǎng)站搜索引擎排名優(yōu)化程序
  • 自己做網(wǎng)站很難全國(guó)免費(fèi)發(fā)布廣告信息
  • 網(wǎng)站積分解決方案百度下載電腦版
  • 網(wǎng)站公司技術(shù)交接蘭州做網(wǎng)站的公司
  • 哪個(gè)網(wǎng)站可以做前端項(xiàng)目有沒(méi)有可以代理推廣的平臺(tái)