4 回答

TA貢獻1836條經(jīng)驗 獲得超4個贊
為了在非托管類上檢索托管 spring bean,我編寫了一個類來執(zhí)行您想要執(zhí)行的操作。
@Configuration
public class ApplicationContextProvider {
private static ApplicationContext context;
public ApplicationContextProvider(ApplicationContext context){
ApplicationContextProvider.context = context;
}
public static ApplicationContext getContext() {
if (Objects.isNull(ApplicationContextProvider.context)) {
throw new IllegalStateException("Context isn't available!");
}
return ApplicationContextProvider.context;
}
public static <E> E getBean(Class<E> bean){
return getContext().getBean(bean);
}
}
要獲得托管 bean,只需ApplicationContextProvider.getBean(MyMapper.class);

TA貢獻1828條經(jīng)驗 獲得超6個贊
您可以在非托管類中實現(xiàn)ApplicationContextAware接口。這將導致應用程序上下文通過 setter 注入,并允許您訪問 Spring 生態(tài)系統(tǒng)的其余部分。
然后你就可以打電話了applicationContext.getBean(MyMapper.class);
。

TA貢獻2003條經(jīng)驗 獲得超2個贊
MyMapper 這個類沒有在 IOC 中注冊為 bean。首先使用@Component或XML文件將MyMapper類注冊為bean然后運行
添加回答
舉報