Spring中获取bean的两种方法

第一种采用注解方法

注解的方法比较简单,不在进行详细介绍,这边主要将的是另外一种方法,当通过注解获取不到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);
“`

猜你喜欢

转载自blog.csdn.net/qq_35939864/article/details/82048288