有個(gè)需要引用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);
}
}想用上面那個(gè)工具類創(chuàng)建bean@Configuration@DependsOn('fooUtils') // <-- 然而不work, 開始new實(shí)例的時(shí)候都還沒進(jìn)行bean的initclass Config { @Bean
public MyObj myObjBean() { return FooUtils.create(1, 2, 3); // <-- 想不到怎么讓這里在fooUtils完成autowired之后才執(zhí)行
}
}@Serviceclass MyService {
@Autowired
private MyObj myObj;
}
1 回答

一只斗牛犬
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
改成,還不行就把create改成實(shí)例方法
@Bean public MyObj myObjBean(FooUtils utils) { return FooUtils.create(1, 2, 3); }
添加回答
舉報(bào)
0/150
提交
取消