SpringContextHolder-Spring应用程序上下文持有类
作用
本Holder类主要用于在Spring应用程序上下文中,获取Spring Bean的实例,以便在非Spring管理的类中获取Spring Bean的实例,本类为纯静态类,不需要实例化即可使用,上下文初始化由Spring框架自动完成,业务编码中直接调用内置静态方法即可获取。
API列表
/**
* 方法描述:根据Spring Bean ID获取Bean对象实例的方法
*
* @param beanId Spring Bean ID
* @param <T> 实例类型
* @return 返回Bean实例
*/
public static <T> T getBean(String beanId) {
// to do sth.
}
/**
* 方法描述:根据Spring Bean ID获取Bean对象实例的方法
*
* @param cls 要获取的实例类型
* @param <T> 实例类型
* @return 返回Bean实例
*/
public static <T> T getBean(Class<T> cls) {
// to do sth.
}
/**
* 通过类上的注解获取类
*
* @param annotation anno
* @return map
*/
public static Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotation) {
// to do sth.
}
用法
静态工具类方法,直接使用SpringBean的类型和ID获取Bean实例即可。
演示
// 根据Spring Bean ID获取Bean对象实例
UserService userService = SpringContextHolder.getBean("userService");
// 根据Spring Bean 类型获取Bean对象实例
UserService userService = SpringContextHolder.getBean(UserServiceImpl.class);