spring 自動注入和 dubbo服務呼叫問題
阿新 • • 發佈:2019-01-26
今天 遇到這樣一個問題:
工程A中我寫寫了一個spring security的自定義認證類,這個類始終不能由容器管理,但是這個時候 我需要通過spring 自動注入某個服務類來獲取使用者相關資訊 來進行認證)
問題出現在:
自定義認證類不是由容器管理的 那麼在類裡面使用@Autowried這些都是沒有用的,服務是注入不進來的
解決方案:
在自定義認證類中手動初始化 容器,從容器中用getBean的方式來獲取類
public class MyUserDeatilsService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
//手動初始化容器類 如果配置用的java類配置方式 就是 AnnotationConfigApplicationContext
ApplicationContext cnt = new ClassPathXmlApplicationContext("classpath:config/*.xml");
ISellerService sellerService = (ISellerService) cnt.getBean("sellerService" );
System.out.println("springSecurity 自定義認證類");
//後面程式碼省略
}
}