spring 手动获取bean对象问题。

通过继承ApplicationContextAware的方式获取到了bean。
但是这个bean中注入的其他bean或new的对象都为空,代理之后拿不到吗?
为什么?怎么才能获取到呢?
图片说明
图片说明
图片说明
图片说明

https://www.cnblogs.com/deng-cc/p/6373670.html

给点浅薄的建议,如果想通过名称获取IOC一个实例。Spring 2.5提供了一个org.springframework.beans.factory.BeanNameAware这个接口。你可以实现这个接口。来实现通过Byname获取bean

你是使用错了,继承ApplicationContextAware后的工具类,在使用的时候不要再次注入了。
参考这个工具类
@Component
public class SpringUtil implements ApplicationContextAware{
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext arg) throws BeansException {
applicationContext=arg;
}

/**
 * 根据beanId获取实体对象
 * @param beanId
 * @param clazz
 * @param <T>
 * @return
 */
public  static<T> T getBean(String beanId, Class<T> clazz){
    T bean = applicationContext.getBean(beanId, clazz);
    return bean;
}
/**
 * 根据类型获取实体对象
 * @param clazz
 * @param <T>
 * @return
 */
public  static<T> T getBean(Class<T> clazz){
    T bean = applicationContext.getBean( clazz);
    return bean;
}

}

使用的时候直接SpringUtil.getBean(class)就行了