启动项目,跑出异常:、
BeanCurrentlyInCreationException
这是由于循环引用造成的,bean A引用bean B,bean 引用bean A,这样就形成了一个闭环。
代码如下:
@Service
public class OrderHandoverService {
@Lazy
@Autowired
private NewOrderService orderService;
....
}
@Service
public class NewOrderService {
@Autowired
private OrderHandoverService orderHandoverService;
....
}
解决方式:在引用bean的地方加一个@Lazy属性。Spring的懒加载是在需要用到bean的时候,就是getBean的时候才创建,这样就不会报BeanCurrentlyInCreationException。
如:
NewOrderService不用改变,OrderHandoverService加注解@Lazy
@Service
public class OrderHandoverService {
@Lazy
@Autowired
private NewOrderService orderService;
...
}