在Shiro 的realm中注入dubbo 服务 总是 null
调试时,发现dubbo 实例化服务是在 @Configuration之后进行(realm初始化之后),所以realm中的依赖的dubbo服务为null,请问如何调整这个加载顺序。
1.首先你的Configuration加载spring.xml,spring-shiro.xml 2.然后spring.xml improt dubbo-consu..xml(服务消费配置) 3.在spring-shiro.xml 的realm bean 中引用发布的消费接口
xml方式是没问题的,使用java config的方式时取不到,要在@Configuration标识的类中使用@Bean优先定义服务,这样在realm才能取到。其他在controller层用的服务,不需要优先定义,按照作者提供的方式使用即可。
@ftqh-johnny 你好,我遇到了和你一模一样的问题,shiro自定义myrealm,无法获取dubbox的服务,是优先级的问题了。请问如何具体在 Configuration配置类中,优先定义需要的服务bean
@ftqh-johnny @cesar-blog 我也有同样的问题,问一下,如果不用xml的方式你们是怎么解决的?
可以通过构造的方式注入service
// configuration
@Bean
public Realm realm(SysUserService sysUserService) {
UserRealm userRealm = new UserRealm(sysUserService);
return userRealm;
}
// realm
public class UserRealm extends AuthorizingRealm {
SysUserService sysUserService;
public UserRealm(SysUserService sysUserService) {
this.sysUserService = sysUserService;
}
...
}