Spring 整合 apache shiro 时,当Realm中有自动注入(@Autowired)时,会实例化三次,
@Component
@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)
public class MyRealm extends AuthorizingRealm {
public MyRealm() {
System.out.println("in Myrelm()");
}
@Autowired
private UserService userService;
}
当UserService上有@Autowired 时,会执行三次构造方法,输出三次“in Myrelm()”。
如果去掉@Autowired 就只有一次。
在其他地方不会出现此问题,比如Controller中自动注入UserService。