Autowired字段是否在类构造期间可访问?
创始人
2024-11-12 16:30:22
0

在某些情况下,类的构造函数可能需要访问类中的@Autowired字段。然而,默认情况下,在类的构造函数被调用之前,@Autowired字段并不可用。为了解决这个问题,可以使用以下解决方案:

  1. 使用构造函数注入:

在类中声明一个有参构造函数,使用@Autowired注解该构造函数参数。在构造函数中完成对@Autowired字段的访问,这样可以确保@Autowired字段在类的构造函数中可用。

示例代码:

@Component
public class MyService {
    private final Dependency dependency;

    @Autowired
    public MyService(Dependency dependency) {
        this.dependency = dependency;
        // Access to the autowired field is available
        // within the constructor
        dependency.someMethod();
    }

    public void doSomething() {
        // Access to the autowired field is available
        // within other methods
        dependency.someMethod();
    }
}
  1. 实现InitializingBean接口:

如果类已经被Spring容器实例化,并且@Autowired字段已经设置值,可以使用InitializingBean接口完成对@Autowired字段的访问。

示例代码:

@Component
public class MyService implements InitializingBean {
    @Autowired
    private Dependency dependency;

    @Override
    public void afterPropertiesSet() throws Exception {
        // Access to the autowired field is available
        // in afterPropertiesSet method
        dependency.someMethod();
    }

    public void doSomething() {
        // Access to the autowired field is available
        // within other methods
        dependency.someMethod();
    }
}

以上两种方法都能够确保@Autowired字段在类的构造函数中可访问。

相关内容

热门资讯

透视揭幕"wepok... 透视揭幕"wepoker轻量版书签"其实真的有辅助插件(哔哩哔哩)1)wepoker轻量版书签有没有...
透视辅助"新道游ap... 透视辅助"新道游app下载"都是是真的有辅助插件(哔哩哔哩)1、新道游app下载免费辅助多个强度级别...
透视详情"wepok... 透视详情"wepoker买钻石有用吗"一贯真的是有辅助工具(哔哩哔哩)wepoker买钻石有用吗是不...
此事备受玩家关注"w... 此事备受玩家关注"wepoker专用辅助程序"果然存在有辅助器(哔哩哔哩)1、超多福利:超高返利,海...
透视详情"约局吧游戏... 透视详情"约局吧游戏挂"切实有辅助插件(哔哩哔哩)1、任何约局吧游戏挂透视是真的假的的玩家都可以机会...
第三方技巧"微信小程... 第三方技巧"微信小程序雀神修改"总是是有辅助器(哔哩哔哩)1、完成微信小程序雀神修改辅助器v3.3的...
透视普及"wepok... 透视普及"wepoker私人局辅助器怎么用"原来存在有辅助技巧(哔哩哔哩);1、首先打开wepoke...
有了最新消息"小程序... 有了最新消息"小程序跑的快辅助器"确实存在有辅助器(哔哩哔哩)1)小程序跑的快辅助器免费钻石:进一步...
透视揭幕"pokem... 透视揭幕"pokemmo脚本辅助下载"好像真的有辅助脚本(哔哩哔哩)1、操作简单,无需pokemmo...
黑科技技巧"决战卡五... 您好,决战卡五星游戏辅助器这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很...