Spring 不通过注解加载bean

工具类:SpringUtil

@Component
public class SpringUtil implements ApplicationContextAware {

   private static ApplicationContext applicationContext;

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

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

注意:上述中必须加@Component,否则会报applicationContext为null的错误信息。

使用示例如下:

@Slf4j
public class SquirrelCache implements Cache {

    private final String name;
    
    private final SquirrelComponent squirrelComponent;
    
    private SquirrelProperties squirrelProperties = SpringUtil.getBean(SquirrelProperties.class);
}
发布了164 篇原创文章 · 获赞 113 · 访问量 68万+

猜你喜欢

转载自blog.csdn.net/timchen525/article/details/82469355