第一种采用注解方法
注解的方法比较简单,不在进行详细介绍,这边主要将的是另外一种方法,当通过注解获取不到bean时,可以采用根据上下文获取。
第二种上下文获取bean
@Component
public class SpringBeanUtil implements ApplicationContextAware {
private static Logger logger = LoggerFactory.getLogger(SpringBeanUtil.class);
/**
* 当前IOC
*/
private static ApplicationContext applicationContext;
/**
* 设置当前上下文环境,此方法由spring自动装配
*/
@Override
public void setApplicationContext(ApplicationContext arg0)
throws BeansException {
applicationContext = arg0;
}
/**
* 从当前IOC获取bean
* @param id bean的id
* @return
*/
public static Object getObject(String id) {
Object object = null;
object = applicationContext.getBean(id);
return object;
}
/**
* 从当前IOC获取bean
* @param id bean的id
* @return
* @return
* @return
*/
public static <T> T getObject(String id,Class<T> c) {
return applicationContext.getBean(id,c);
}
/**
* 通过类型获取第一个实例
*/
public static <T> T getBeanByType(Class<T> c) {
return applicationContext.getBean(c);
}
}
##测试例子
this.redisTemplate=SpringUtil.getObject(“redisTemplate”,RedisTemplate.class);
“`