在使用maven做接口的时候发现一个问题,maven不能出现循环依赖,否则编译报错,那么如果业务逻辑中不得不循环依赖时怎么办呢?
Spring在服务启动的时候会自动加载bean实例,而且用容器管理,虽然一个项目可能依赖于其他父项目 或者 子项目,但是最终都会被编译成同一个项目,那么bean最终也就是在同一个容器中管理,此时可以借助于容器,绕过maven的循环依赖,直接从容器中获取响应的bean实例,代码如下
代码实例
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class SpringContextHelper implements ApplicationContextAware {
private static ApplicationContext context = null;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.context = applicationContext;
}
public static Object getBean(String name) {
return context.getBean(name);
}
public static Object getBean(Class<?> c) {
return context.getBean(c);
}
}