在普通类、线程中中无法依赖注入问题解决方法

 

 上图中zsBankService使用@Autowired是null值,原因是SignInOut类不在spring容器中。
解决方法1:在SignInOut类上加上@Component注解
解决方法2:写一个应用上下文的工具类

@Component
public class SpringContextUtils implements ApplicationContextAware {

/**
* 应用上下文
*/
private static ApplicationContext applicationContext;

public static ApplicationContext getApplicationContext(){
return applicationContext;
}

@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtils.applicationContext = applicationContext;
}

@SuppressWarnings("unchecked")
public static <T> T getBean(String name) throws BeansException {
return (T)applicationContext.getBean(name);
}

public static <T> T getBean(Class<T> clz) throws BeansException {
return (T)applicationContext.getBean(clz);
}
}

 

 解决!

posted @ 2022-04-20 10:31  一个追求未知的人  阅读(231)  评论(0)    收藏  举报