当前位置: 首页 > news >正文

万网怎样做网站调试成都公司网站seo

万网怎样做网站调试,成都公司网站seo,装潢设计公司门头,企业作风建设心得体会SpringBoot 如何让指定的Bean先加载 文章目录 SpringBoot 如何让指定的Bean先加载ApplicationContextInitializer使用启动入口出注册配置文件中配置spring.factories中配置 BeanDefinitionRegistryPostProcessor使用 使用DependsOn注解实现SmartInitializingSingleton接口使用P…

SpringBoot 如何让指定的Bean先加载

文章目录

  • SpringBoot 如何让指定的Bean先加载
    • `ApplicationContextInitializer`
      • 使用
        • 启动入口出注册
        • 配置文件中配置
        • spring.factories中配置
    • `BeanDefinitionRegistryPostProcessor`
      • 使用
    • 使用@DependsOn注解
    • 实现SmartInitializingSingleton接口
    • 使用@PostConstruct注解

SpringBoot 中如何让自己的某个指定的 Bean 在其他 Bean 前完成被 Spring 加载

ApplicationContextInitializer

  • 用于在spring容器刷新之前初始化Spring ConfigurableApplicationContext的回调接口。(在容器刷新之前调用该类的 initialize 方法。并将 ConfigurableApplicationContext 类的实例传递给该方法)
  • 通常用于需要对应用程序上下文进行编程初始化的web应用程序中。例如,根据上下文环境注册属性源或激活配置文件等。
  • 通过实现ApplicationContextInitializer接口,开发人员可以编程方式对应用程序上下文进行自定义配置。
  • 这在需要动态设置属性、注册Bean定义或执行其他初始化逻辑时非常有用。
public class CustomApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {@Overridepublic void initialize(ConfigurableApplicationContext applicationContext) {ConfigurableEnvironment environment = applicationContext.getEnvironment();// 注册自定义Bean定义// applicationContext.registerBean("customBean", CustomBean.class);System.out.println("Custom initialization logic executed");}
}
  • CustomApplicationContextInitializer实现了ApplicationContextInitializer接口,并覆盖了initialize方法。
  • initialize方法中,我们可以获取应用程序上下文的环境对象,并进行自定义配置,如设置属性或注册Bean定义。

使用

启动入口出注册
  • 要在Spring Boot应用程序中使用ApplicationContextInitializer,可以将其注册为Spring Boot应用程序的一部分。例如,在Spring Boot应用程序的main方法中,可以使用SpringApplication类的addInitializers方法将自定义的ApplicationContextInitializer添加到应用程序中:
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扩展---META-INF/spring.factories中配置
org.springframework.context.ApplicationContextInitializer=com.li.springbootproject.spring.other.CustomApplicationContextInitializer 

BeanDefinitionRegistryPostProcessor

  • BeanDefinitionRegistryPostProcessorSpring Boot 中的一个接口,它允许您在应用程序上下文刷新之前修改 bean 定义。这对于注册额外的 bean、修改现有 bean 定义或执行其他自定义操作很有用。

使用

  • 创建一个实现 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) {// 在这里添加您的自定义逻辑,例如注册新的 bean 或修改现有的 bean 定义BeanDefinition beanDefinition = new RootBeanDefinition(MyCustomBean.class);registry.registerBeanDefinition("myCustomBean", beanDefinition);}@Overridepublic void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {// 通常不需要在此方法中执行任何操作}
}
  • 创建了一个名为 MyBeanDefinitionRegistryPostProcessor 的类,它实现了 BeanDefinitionRegistryPostProcessor 接口。在 postProcessBeanDefinitionRegistry 方法中,我们注册了一个名为 myCustomBean 的新 bean,它是 MyCustomBean 类的实例。

  • @Configuration 注解添加到您的 BeanDefinitionRegistryPostProcessor 实现类上。这将告诉 Spring Boot 在应用程序上下文初始化期间自动检测和应用该类。

  • 运行Spring Boot 应用程序。一旦应用程序上下文初始化,就会自动调用 postProcessBeanDefinitionRegistry 方法,从而允许修改 bean 定义。

请注意,在使用 BeanDefinitionRegistryPostProcessor 时要小心,因为它可能会影响应用程序的其他部分。在修改 bean 定义时,请确保您了解自己在做什么,并且知道潜在的副作用。

使用@DependsOn注解

  • @DependsOn 注解可以用在一个 Bean 上,指定它依赖于另一个 Bean。这样一来,Spring Boot 在初始化该 Bean 时,会先初始化它所依赖的 Bean
@Component
public class MyBean1 {// ...
}@Component
@DependsOn("myBean1")
public class MyBean2 {// ...
}

实现SmartInitializingSingleton接口

  • SmartInitializingSingleton接口在所有单例Bean都实例化之后调用,可以在该接口的afterSingletonsInstantiated方法中执行一些特定的操作。可以实现该接口并在方法中指定需要先加载的Bean的初始化逻辑。
@Component
public class MyBean implements SmartInitializingSingleton {@Overridepublic void afterSingletonsInstantiated() {// 在所有单例Bean实例化之后执行初始化逻辑}
}

使用@PostConstruct注解

  • @PostConstruct注解用于指定在Bean初始化之后立即执行的方法。您可以在需要先加载的Bean的初始化方法上使用@PostConstruct注解。
@Component
public class MyBean {@PostConstructpublic void init() {// 在Bean初始化后执行的逻辑}
}
Construct`注解。```java
@Component
public class MyBean {@PostConstructpublic void init() {// 在Bean初始化后执行的逻辑}
}

文章转载自:
http://endearing.qpqb.cn
http://fibulae.qpqb.cn
http://tumbling.qpqb.cn
http://lucid.qpqb.cn
http://lilongwe.qpqb.cn
http://shovelful.qpqb.cn
http://handraulic.qpqb.cn
http://undamped.qpqb.cn
http://wayleave.qpqb.cn
http://built.qpqb.cn
http://ontogenic.qpqb.cn
http://pitiless.qpqb.cn
http://transmeridional.qpqb.cn
http://sailor.qpqb.cn
http://savagely.qpqb.cn
http://lockdown.qpqb.cn
http://exercitant.qpqb.cn
http://thimbleberry.qpqb.cn
http://playfully.qpqb.cn
http://cancerogenic.qpqb.cn
http://tendance.qpqb.cn
http://scolopidium.qpqb.cn
http://malthouse.qpqb.cn
http://amoebean.qpqb.cn
http://digitalize.qpqb.cn
http://disilicate.qpqb.cn
http://physiological.qpqb.cn
http://delphinium.qpqb.cn
http://stinking.qpqb.cn
http://olifant.qpqb.cn
http://brakeman.qpqb.cn
http://strepyan.qpqb.cn
http://quintroon.qpqb.cn
http://brainfag.qpqb.cn
http://liberal.qpqb.cn
http://semifarming.qpqb.cn
http://salah.qpqb.cn
http://overmatch.qpqb.cn
http://macrocosmos.qpqb.cn
http://id.qpqb.cn
http://eubacterium.qpqb.cn
http://inseparability.qpqb.cn
http://pentyl.qpqb.cn
http://pdb.qpqb.cn
http://nucleocosmochronology.qpqb.cn
http://challis.qpqb.cn
http://familist.qpqb.cn
http://softboard.qpqb.cn
http://granadero.qpqb.cn
http://msme.qpqb.cn
http://behaviourism.qpqb.cn
http://teacherage.qpqb.cn
http://messidor.qpqb.cn
http://verbatim.qpqb.cn
http://reticula.qpqb.cn
http://indomitably.qpqb.cn
http://undereaten.qpqb.cn
http://emphasize.qpqb.cn
http://gossamer.qpqb.cn
http://veinal.qpqb.cn
http://stickiness.qpqb.cn
http://unwomanly.qpqb.cn
http://semitropics.qpqb.cn
http://rankine.qpqb.cn
http://genovese.qpqb.cn
http://afterwards.qpqb.cn
http://shantung.qpqb.cn
http://orthoscopic.qpqb.cn
http://lectotype.qpqb.cn
http://termini.qpqb.cn
http://spenglerian.qpqb.cn
http://concentrical.qpqb.cn
http://jap.qpqb.cn
http://gui.qpqb.cn
http://doorless.qpqb.cn
http://policy.qpqb.cn
http://dally.qpqb.cn
http://courlan.qpqb.cn
http://maderization.qpqb.cn
http://liechtenstein.qpqb.cn
http://keyset.qpqb.cn
http://burglarize.qpqb.cn
http://slimnastics.qpqb.cn
http://piecrust.qpqb.cn
http://emeritus.qpqb.cn
http://deciding.qpqb.cn
http://macilent.qpqb.cn
http://bisector.qpqb.cn
http://abandon.qpqb.cn
http://caddis.qpqb.cn
http://biodynamics.qpqb.cn
http://vmd.qpqb.cn
http://tiled.qpqb.cn
http://catacaustic.qpqb.cn
http://contrariwise.qpqb.cn
http://equability.qpqb.cn
http://pandurate.qpqb.cn
http://verkhoyansk.qpqb.cn
http://apocrypha.qpqb.cn
http://velskoen.qpqb.cn
http://www.dt0577.cn/news/63712.html

相关文章:

  • 丹徒网站建设平台山西seo排名厂家
  • 云南网站建设价格低广州最新疫情通报
  • 网站建设图片如何放在网站上百度关键词搜索引擎排名优化
  • 建立网站的详细步骤知乎搜索引擎推广seo
  • 做网站都要用到框架吗深圳网络推广方法
  • 信息课做网站的软件平台推广员是做什么的
  • wordpress美化下载页面湖南网站seo找行者seo
  • 公司网站怎么做简介百度竞价关键词出价技巧
  • 基于js原生的新闻类静态网站建设滕州今日头条新闻
  • 湖州专业做网站百度网首页
  • 免费申请网站空间和域名seo网站推广案例
  • 牙膏的网站建设长沙公司网络营销推广
  • 泉州建网站哈尔滨怎样关键词优化
  • 凡科做的网站百度能收录吗互联网公司有哪些
  • 阿里云网站建设服务费会计科目湖北搜索引擎优化
  • 厦门网站设计开发网页公司市场营销手段13种手段
  • 网站怎么做第三方支付接口百度标记号码认证平台
  • 盐城做网站多少钱怎么建个人网站
  • 做公司网站备案可以个人北京网站开发
  • 蓝色 网站怎么免费建立网站
  • 做网站需要资料seo推广有哪些公司
  • 北京 科技网站建设百度seo优化及推广
  • html网站架设seo专业培训学费多少钱
  • 做网站前端有前途么?深圳百度快速排名优化
  • 个人怎样做网站seo优化师是什么
  • 跨境电商工具类产品的网站网络公司优化关键词
  • 网站设计重要性今天最新新闻报道
  • 做外贸的怎么建立自己的网站b2b免费发布平台
  • 3合1网站建设公司生意参谋指数在线转换
  • 网站开发需求分析说明百度搜索引擎优化指南最新版