首页 > 其他分享 >springboot~AutoConfigureAfter如何控制Bean的注入顺序

springboot~AutoConfigureAfter如何控制Bean的注入顺序

时间:2024-04-30 13:11:27浏览次数:26  
标签:springboot 配置 Father AutoConfigureAfter class Bean public

这个文章主要介绍一下@AutoConfigureAfter在spring框架中的作用,在使用过程中,很多开发人员在使用它的时候都出现了问题,问题比较多的就是它们的注册顺序总不是我们预期的,下面介绍一下正常的使用方法。

  • @AutoConfigureAfter用在配置类上面,即需要在@Configuration修饰的类上,而不是@Component上面。
  • 这些配置类,需要在spring.factories上面进行注册
  • @AutoConfigureAfter影响的是配置类中@Bean声明的方法,而不是配置类本身

代码测试

祖父配置

@Configuration
@AutoConfigureBefore(Father.class) // 在我儿子Father之前,我GrandFather先初始化
public class GrandFather {

	@Bean
	public String  grandFatherBean() {
		System.out.println("配置類GrandFatherConfig構造器被執行...");
		return null;
	}

}

父亲配置

@Configuration
public class Father {

	@Bean
	public String fatherTest() {
		System.out.println("配置類FatherConfig構造器被執行");
		return "配置類FatherConfig構造器被執行...";
	}

}

儿子配置

@Configuration
@AutoConfigureAfter(Father.class) // 在爸爸之初始化
public class Son {

	@Bean
	public String SonBean() {
		System.out.println("配置類SonConfig構造器被執行...");
		return null;
	}

}

spring.factories配置相关

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  com.lind.common.bean.family.Father,\
  com.lind.common.bean.family.GrandFather,\
  com.lind.common.bean.family.Son

springboot启动后,可以看到截,这些bean在初始化时,使用了正确的可预期的顺序进行注册

标签:springboot,配置,Father,AutoConfigureAfter,class,Bean,public
From: https://www.cnblogs.com/lori/p/18167850

相关文章

  • SpringBoot的JSR303校验
    关于JSRJSR是JavaSpecificationRequests的缩写,意思是Java规范提案。是指向JCP(JavaCommunityProcess)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。关于JSR-303JSR-303是JAVAEE6中的一......
  • Spirng 当中 Bean的作用域
    Spirng当中Bean的作用域@目录Spirng当中Bean的作用域每博一文案1.Spring6当中的Bean的作用域1.2singleton默认1.3prototype1.4Spring中的bean标签当中scope=属性其他的值说明1.5自定义作用域,一个线程一个Bean2.总结:3.最后:每博一文案青年,青年!无论受怎样的......
  • 使用springboot+thymeleaf 在html中获取session
    Controllerimportorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.GetMapping;importjavax.servlet.http.HttpSession;@ControllerpublicclassUserController{@GetMappin......
  • springboot连接sqlserver2008r2 驱动版本问题。
    <dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>8.2.2.jre8</version></dependency>版本比较常见的:8.4.1.jre8最新的提示:9......
  • SpringBoot配置HTTPS及开发调试
    前言在实际开发过程中,如果后端需要启用https访问,通常项目启动后配置nginx代理再配置https,前端调用时高版本的chrome还会因为证书未信任导致调用失败,通过摸索整理一套开发调试下的https方案,特此分享后端配置生成HTTPS密钥keytool-genkeypair-aliastomcat-keyalgRSA-keysi......
  • IDEA导入springboot项目无法识别resources下的application.yml配置文件
    遇到的问题:IDEA springboot不能读取resources下的yml配置文件如下图,application.yml文件前面的图标并不是springboot配置文件的图标,这就是IDEA没有识别到yml文件 正确的配置文件图标因该是下面这样的可能原因及解决方法: 文件名问题:确保YML文件的名称是正确......
  • 使用idea 在线创建springboot 项目-需联网
    1.打开idea,点击File,New,Project...2.配置项目名称和地址,配置jdk版本.配置完成点击Next等待导入依赖没有jdk17就下载一下想要在resources目录创建.yml结尾文件,按步骤操作选择Editor->FileandCodeTemplates选择files点击+号,输入名称,和文件类型.......
  • SpringBoot自动装配原理
     个人理解,SpringBoot就是由Spring和SpringMVC整合而来。开箱即用、简化监控、简化配置、简化部署;约定大于配置;boot脱离了传统Spring手动配置大量的bean,而SpringBoot自动装配改变了繁琐的局面。 SpringBoot的自动配置基于条件注解和自动配置类,它能够根据应用程序的......
  • springboot~redis的hash结构为key设置过期策略
    redis配置文件开启键过期#The"notify-keyspace-events"takesasargumentastringthatiscomposed#ofzeroormultiplecharacters.Theemptystringmeansthatnotifications#aredisabled.##Example:toenablelistandgenericevents,fromthepo......
  • 不推荐把“线程”注入到Spring、在线程中使用Spring的Bean的方法
    一、不推荐把“线程”注入到spring将线程注入到Spring容器中并不是一个常见的做法,而且通常也不推荐这样做,原因如下:生命周期管理困难:Spring管理的Bean生命周期由Spring容器管理,而线程的生命周期由JVM管理。将线程注入到Spring容器中会导致线程的生命周期与Spring容器的生命周......