数据库
首页 > 数据库> > new 创建的对象,通过注入方式获取RedisTemplate,报空指针异常

new 创建的对象,通过注入方式获取RedisTemplate,报空指针异常

作者:互联网

有一次需要使用RedisTemplate,通过@Autowired方式注入,使用的时候一致报空指针,后来发现该对象由于业务关系时new 来的,无法获取spring容器对象

使用工具类

@Component
public class SpringUtils implements ApplicationContextAware {

	private static ApplicationContext applicationContext = null;

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

	public static <T> T getBean(Class<T> cla) {
		return applicationContext.getBean(cla);
	}

	public static <T> T getBean(String name, Class<T> cal) {
		return applicationContext.getBean(name, cal);
	}

	public static String getProperty(String key) {
		return applicationContext.getBean(Environment.class).getProperty(key);
	}
}

## 在你需要使用某个对象,而不能通过注入的方式从spring容器中获取时候,就可以使用一下方案

比如我使用 spring的 RedisTemplate,但是这个类是通过new 对象创建的,那就可以用一下方法从spring容器中获取```
 RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);

标签:applicationContext,String,spring,getBean,static,报空,new,public,RedisTemplate
来源: https://blog.csdn.net/weixin_42655767/article/details/121099367