目录
Spring mvc中循环依赖测试:
简单循环依赖搭建
public class B {
@Autowired//B依赖于A
private A a;
}
public class A {
@Autowired//A依赖于B
private B b;
}
@Configuration
public class Config {
@Bean
public A a(){return new A();}
@Bean
public B b(){return new B();}
}
复杂循环依赖搭建
public class B {
@Autowired//配置类B中注入服务层的实现类A
private A a;
@Bean//在向容器添加C的实现类的过程中.....
public C userDetailsService(){
return new C() {
@Override
public void loadUserByUsername() {//从数据库查询数据,并进行封装
a.getAdminByUsername();//调用A的方法:查询用户信息
a.getPermissionList();//调用A的方法:查询用户权限
System.out.println();//将用户信息与权限进行封装操作,返回用户详情
}
};
}
}
public class A {
@Autowired//A依赖C
private C c;
public void login(){//登录方法中调用c的方法
c.loadUserByUsername();//获取对用户信息与权限的封装
}
public void getAdminByUsername() {//获取用信息
}
public void getPermissionList() {//获取用户权限
}
}