@DependsOn限制Bean的初始化顺序
阅读数:16 评论数:0
跳转到新版页面分类
python/Java
正文
@DependsOn
注解可以应用于类或方法上,用于声明当前 Bean 依赖于另一个 Bean,这样可以确保 Bean 的初始化顺序。
一、示例
假设我们有两个 @Configuration
类:FirstConfiguration
和 SecondConfiguration
,并且我们希望 SecondConfiguration
在 FirstConfiguration
执行完之后再执行。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FirstConfiguration {
@Bean
public String firstBean() {
System.out.println("FirstConfiguration is initialized");
return "First Bean";
}
}
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
@Configuration
@DependsOn("firstConfiguration")
public class SecondConfiguration {
@Bean
public String secondBean() {
System.out.println("SecondConfiguration is initialized");
return "Second Bean";
}
}
FirstConfiguration
中的 firstBean
将会在 SecondConfiguration
中的 secondBean
之前初始化。
二、注意事项
1、Bean名称
在 @DependsOn
注解中使用的是 Bean 的名称,而不是类名。因此,如果你使用 @DependsOn("firstConfiguration")
,确保 FirstConfiguration
的 Bean 名称是 firstConfiguration
。默认情况下,Spring 会使用类名的首字母小写作为 Bean 名称。
2、Bean顺序
@DependsOn
注解确保了 Bean 的初始化顺序,但不影响 @Configuration
类的加载顺序。@DependsOn
注解只影响 Bean 的实例化顺序。
三、更复杂的依赖关系
如果你有更复杂的依赖关系,可能需要对多个 Bean 使用 @DependsOn
注解。例如:
@Configuration
public class AnotherConfiguration {
@Bean
@DependsOn({"firstBean", "secondBean"})
public String anotherBean() {
System.out.println("AnotherConfiguration is initialized");
return "Another Bean";
}
}
相关推荐
一、request uri部分 @PathVariable
获取路径参数,形如url/{id}
二、request header部分 @RequestHeade
一、概述
一个项目使用多个数据库(无论是主从复制--读写分离还是分布式数据库结构)的重要性变得越来越明显,整合的多数据源有两种方式:分包和aop。
1、SqlSessionTemplate
SqlSe
一、概述
PageHelper是开源免费的mybatis第三方分页插件。
二、使用
1、pom引入
<dependency>
<groupId>com.github.pageh
一、日志框架的介绍
Spring Boot 2.*默认采用slf4j+logback的形式,slf4j是个通用的日志门面,logback就是个具体的日志框架了。
一、问题解决方式
@PostMapping("/insert")
@ResponseBody
private ResultVO insert1(@RequestParam Map<String, St
JJWT 全称Java Json Web Token。
而JWT是一种在两方之间传输信息的方法,在jwt的主体中编码的信息被称为claims。jwt的扩展形式是json,因此每个c
一、概述
@EnableConfigurationProperties注解的作用是:让使用了@ConfigurationProperties注解的类生效,并且将该类注入到IOC容器中,交由IOC容器进
一、概述
Druid(德鲁伊)是Java语言中的数据库连接池,Spring Boot 2.x默认使用Hikari数据源,虽然HikariCP的速度稍快,但是,Druid能够提供强大的监控和扩展功能。
1、配置文件的格式
springboot可以识别两种格式的配置文件,分别是yml文件与properties文件,我们可以将application.properties文件换成a