All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.biz.common.bean.BizXBeanUtils Maven / Gradle / Ivy

Go to download

BizX 是一个灵活而高效的业务开发框架, 其中也有很多为业务开发所需要的工具类的提供。

The newest version!
package com.biz.common.bean;

import com.biz.common.application.aware.ApplicationContextAwareUtils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.lang.Nullable;

import java.lang.annotation.Annotation;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 

* Bean Util工具类 *

*

* 提供对 Spring Bean 的一些操作工具方法。该类包含获取 Bean 实例、获取带注解的 Bean、获取实现特定类型的 Bean、获取所有 Bean 类等功能。 *

*

* 注意:该工具类假设 {@link ApplicationContextAwareUtils} 提供了有效的 {@link ApplicationContext}。 *

* *

示例代码:

*
{@code
 *     MyBean myBean = BizXBeanUtils.getBean(MyBean.class);
 * }
 * 
* * @see ApplicationContextAwareUtils * @see ApplicationContext * @author francis * @version 1.0.1 * @since 1.0.1 */ public final class BizXBeanUtils { /** * 私有构造函数,工具类不应被实例化。 */ private BizXBeanUtils() { // 工具类不应被实例化 } /** * 获取指定类型的 Bean 实例。 * * @param clazz 要获取的 Bean 的类型,不能为空 * @param Bean 的类型 * @return 指定类型的 Bean 实例 * @throws BeansException 如果没有找到该类型的 Bean 或 Bean 初始化失败 * @see ApplicationContext#getBean(Class) */ public static T getBean(Class clazz) { return getApplicationContext().getBean(clazz); } /** * 获取指定名称的 Bean 实例。 * * @param clazz 要获取的 Bean 的名称,不能为空 * @return 指定名称的 Bean 实例 * @throws BeansException 如果没有找到该名称的 Bean 或 Bean 初始化失败 * @see ApplicationContext#getBean(String) */ public static Object getBean(String clazz) { return getApplicationContext().getBean(clazz); } /** * 获取带有指定注解的所有 Bean。 * * @param clazz 注解类型,不能为空 * @return 带有指定注解的所有 Bean 的名称和实例映射 * @see ApplicationContext#getBeansWithAnnotation(Class) */ public static Map getBeansWithAnnotation(Class clazz) { return getApplicationContext().getBeansWithAnnotation(clazz); } /** * 获取指定类型的所有 Bean,包括实现该接口或继承该类的所有 Bean。 * * @param type Bean 的类型,可以为 null * @param Bean 的类型 * @return 指定类型的所有 Bean 的名称和实例映射 * @throws BeansException 如果获取 Bean 失败 * @see ApplicationContext#getBeansOfType(Class) */ public static Map getBeansOfType(@Nullable Class type) throws BeansException { return getApplicationContext().getBeansOfType(type); } /** * 获取所有 Bean 的 Class 类型。 * * @return 所有 Bean 的 Class 类型列表 * @see ApplicationContext#getBeanDefinitionNames() */ public static List> getBeanDefinitionClasses() { List> classList = new ArrayList<>(); for (String beanName : getApplicationContext().getBeanDefinitionNames()) { classList.add(getApplicationContext().getBean(beanName).getClass()); } return classList; } /** * 获取所有 Bean 的名称。 * * @return 所有 Bean 的名称数组 * @see ApplicationContext#getBeanDefinitionNames() */ public static String[] getBeanDefinitionNames() { return getApplicationContext().getBeanDefinitionNames(); } /** * 获取 ApplicationContext 实例。 * * @return ApplicationContext 实例 * @see ApplicationContextAwareUtils#getApplicationContext() */ public static ApplicationContext getApplicationContext() { return ApplicationContextAwareUtils.getApplicationContext(); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy