为了账号安全,请及时绑定邮箱和手机立即绑定

spring是否能在其它bean完成init之后才创建另外一个bean的实例?

spring是否能在其它bean完成init之后才创建另外一个bean的实例?

摇曳的蔷薇 2018-08-26 10:43:27
有个需要引用bean的工具类@Componentclass FooUtils implements InitializingBean {    private static Foo foo;    private static Bar bar;    @Autowired     private void foo(Foo foo) {         MyFactory.foo = foo;     }         @Override     public void afterPropertiesSet() throws Exception {         bar = new Bar(foo, ...);     }         public static MyObj create(int param1, int param2, int param3) {        if (foo == null) { thrown new Exception(); }        return new MyObj(foo.baz(param1, param2), bar, param3);     } }想用上面那个工具类创建bean@Configuration@DependsOn('fooUtils') // <-- 然而不work, 开始new实例的时候都还没进行bean的initclass Config {    @Bean     public MyObj myObjBean() {        return FooUtils.create(1, 2, 3); // <-- 想不到怎么让这里在fooUtils完成autowired之后才执行     } }@Serviceclass MyService {     @Autowired     private MyObj myObj; }
查看完整描述

1 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

改成,还不行就把create改成实例方法

    @Bean
    public MyObj myObjBean(FooUtils utils) {        return FooUtils.create(1, 2, 3);
    }


查看完整回答
反对 回复 2018-08-27
  • 1 回答
  • 0 关注
  • 719 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信