获取Spring容器中Bean的工具类
来源:互联网 发布:js中定义二维数组 编辑:程序博客网 时间:2024/05/22 08:21
一、获取Spring容器中Bean的工具类
1、方式一
package 包路径;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component("SpringBeanUtil")
public class SpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext context;
private static SpringBeanUtil servlocator = new SpringBeanUtil();
public void setApplicationContext(ApplicationContext context) throws BeansException {
this.context = context;
}
/**
* 创建读取Bean服务类实例(从spring.xml中加载)
*/
public static SpringBeanUtil getInstance() {
return servlocator;
}
/**
* 根据提供的bean名称得到相应的服务类
*
* @param servName
* bean名称
*/
public static Object getBean(String beanId) {
return context.getBean(beanId);
// return beanFactory.getBean(servName);
}
/**
* 根据提供的bean名称得到对应于指定类型的服务类
*
* @param servName
* bean名称
* @param clazz
* 返回的bean类型,若类型不匹配,将抛出异常
*/
public static <T> T getBean(String beanId, Class<T> clazz) {
return context.getBean(beanId, clazz);
}
/**
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
*
* @param name
* @return boolean
*/
public static boolean containsBean(String beanId) {
return context.containsBean(beanId);
}
/**
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
*
* @param name
* @return boolean
* @throws NoSuchBeanDefinitionException
*/
public static boolean isSingleton(String beanId) {
return context.isSingleton(beanId);
}
/**
* @param name
* @return Class 注册对象的类型
* @throws NoSuchBeanDefinitionException
*/
public static Class getType(String beanId) {
return context.getType(beanId);
}
/**
* 如果给定的bean名字在bean定义中有别名,则返回这些别名
*
* @param name
* @return
* @throws NoSuchBeanDefinitionException
*/
public static String[] getAliases(String beanId) {
return context.getAliases(beanId);
}
@SuppressWarnings("unchecked")
public static <T> T getBeanByName(String beanName) {
try {
return (T) context.getBean(beanName);
} catch (Exception e) {
return null;
}
}
public static <T> T getBeanByType(Class<T> type) {
try {
return context.getBean(type);
} catch (Exception e) {
return null;
}
}
}
2、方式二
package 包路径;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component("SpringBeanUtil")
public class SpringBeanUtil implements ApplicationContextAware {
private static ApplicationContext context;
private static SpringBeanUtil servlocator = new SpringBeanUtil();
public void setApplicationContext(ApplicationContext context) throws BeansException {
this.context = context;
}
/**
* 创建读取Bean服务类实例(从spring.xml中加载)
*/
public static SpringBeanUtil getInstance() {
return servlocator;
}
/**
* 根据提供的bean名称得到相应的服务类
*
* @param servName
* bean名称
*/
public static Object getBean(String beanId) {
return context.getBean(beanId);
// return beanFactory.getBean(servName);
}
/**
* 根据提供的bean名称得到对应于指定类型的服务类
*
* @param servName
* bean名称
* @param clazz
* 返回的bean类型,若类型不匹配,将抛出异常
*/
public static <T> T getBean(String beanId, Class<T> clazz) {
return context.getBean(beanId, clazz);
}
/**
* 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
*
* @param name
* @return boolean
*/
public static boolean containsBean(String beanId) {
return context.containsBean(beanId);
}
/**
* 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
*
* @param name
* @return boolean
* @throws NoSuchBeanDefinitionException
*/
public static boolean isSingleton(String beanId) {
return context.isSingleton(beanId);
}
/**
* @param name
* @return Class 注册对象的类型
* @throws NoSuchBeanDefinitionException
*/
public static Class getType(String beanId) {
return context.getType(beanId);
}
/**
* 如果给定的bean名字在bean定义中有别名,则返回这些别名
*
* @param name
* @return
* @throws NoSuchBeanDefinitionException
*/
public static String[] getAliases(String beanId) {
return context.getAliases(beanId);
}
@SuppressWarnings("unchecked")
public static <T> T getBeanByName(String beanName) {
try {
return (T) context.getBean(beanName);
} catch (Exception e) {
return null;
}
}
public static <T> T getBeanByType(Class<T> type) {
try {
return context.getBean(type);
} catch (Exception e) {
return null;
}
}
}
- 获取Spring容器中Bean的工具类
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- 获取Spring容器中Bean实例的工具类(Java泛型方法实现)
- 获取Spring 容器中bean的方法
- 获取spring容器中bean的方法
- Spring工具类,获取Spring容器中的Bean
- Web容器中获取spring容器的bean对象
- java类获取spring容器的bean
- Java类获取spring 容器的bean
- Java类获取spring 容器的bean
- Java类获取spring 容器的bean
- Java类获取spring 容器的bean
- Java类获取Spring容器的bean
- Java类获取spring容器的bean
- 方便获取Spring IOC容器中对象的工具类
- Spring动态获取IoC容器中管理的Bean
- Spring线程获取容器中bean的方法
- 从Spring容器中获取bean的几种方式
- android:descendantFocusability用法简析
- [$injector:unpr] Unknown provider:--angular.module()函数解答
- undefinded sysmbols __objc__类名编译错误
- 【Java多线程】死锁范例及解决办法
- 断言以及程序的调试
- 获取Spring容器中Bean的工具类
- Robotframework 写入excel数据
- 【+】Maven介绍:包括作用、核心概念、用法、常用命令、扩展及配置
- iptables规则管理
- 跟我一起java从零开始-JAVA基础 第一章 Hello world
- 守护进程的详细总结(包括实例解析)
- 多个单核CPU和单个多核CPU
- 21分钟入门MySQL笔记
- 满排序二叉树任意三个节点最低公共父节点