【Spring系列】Spring @DependsOn注解控制两个Bean的加载顺序

在Spring应用中,由于A类调用B类静态方法导致B类中@Value注解的属性未注入。通过使用@DependsOn注解,确保B类Bean先于A类Bean加载,解决了这个问题。该注解使得Spring在初始化A类前会先初始化B类,确保依赖注入的正确性。
摘要由CSDN通过智能技术生成

背景

最近遇到了一个比较罕见的bug,灰度上线的机器在监控平台打的点应用名和方法名都是null,排查了一番,发现新增的A类调用了监控打点的切面B类的静态方法,而在Spring加载Bean的时候,先加载了A类的Bean,使得B类中需要Spring注入的被@Value修饰的应用名和方法名属性都没有注入成功。

A类

@Component
public class A{
   
   public void xxx(){
   
       //用B类打点
       B.registerInfo('A.xxx');
   }
}

B类

@Service('b')
public class B{
   
   private static String sAppName;
   private static String sMethodName;
   @Value("my_app")
   public void setAppName(String appName){
   
     sAppName = appName;
   }
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值