Module bus.starter

Class SpringBuilder

java.lang.Object
org.miaixz.bus.spring.SpringBuilder
All Implemented Interfaces:
org.springframework.beans.factory.Aware, org.springframework.context.ApplicationContextAware

@Component public class SpringBuilder extends Object implements org.springframework.context.ApplicationContextAware
Spring上下文管理和Bean操作工具类
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Details

    • SpringBuilder

      public SpringBuilder()
  • Method Details

    • getContext

      public static org.springframework.context.ConfigurableApplicationContext getContext()
      获取Spring上下文
      Returns:
      上下文对象
    • setContext

      public static void setContext(org.springframework.context.ConfigurableApplicationContext context)
      设置Spring上下文
      Parameters:
      context - 上下文对象
    • getBeanFactory

      public static org.springframework.beans.factory.ListableBeanFactory getBeanFactory()
      获取Bean工厂
      Returns:
      Bean工厂对象
    • getBean

      public static <T> T getBean(String name)
      通过名称获取Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      name - Bean名称
      Returns:
      Bean实例
    • getBean

      public static <T> T getBean(Class<T> clazz, Object... args)
      通过类型获取Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      clazz - Bean类型
      args - 构造函数参数
      Returns:
      Bean实例
    • getBean

      public static <T> T getBean(String name, Object... args)
      通过名称和参数获取Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      name - Bean名称
      args - 构造函数参数
      Returns:
      Bean实例
    • getBean

      public static <T> T getBean(String name, Class<T> clazz)
      通过名称和类型获取Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      name - Bean名称
      clazz - Bean类型
      Returns:
      Bean实例
    • getBean

      public static <T> T getBean(org.miaixz.bus.core.lang.reflect.TypeReference<T> reference)
      通过类型参考获取带泛型的Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      reference - 类型参考
      Returns:
      Bean实例
    • getBeansOfType

      public static <T> Map<String,T> getBeansOfType(Class<T> type)
      获取指定类型的所有Bean
      Type Parameters:
      T - Bean类型
      Parameters:
      type - Bean类型
      Returns:
      Bean名称到实例的映射
    • getBeanNamesForType

      public static String[] getBeanNamesForType(Class<?> type)
      获取指定类型的Bean名称
      Parameters:
      type - Bean类型
      Returns:
      Bean名称数组
    • getProperty

      public static String getProperty(String key)
      获取配置属性值
      Parameters:
      key - 属性键
      Returns:
      属性值
    • getActiveProfiles

      public static String[] getActiveProfiles()
      获取当前激活的环境配置
      Returns:
      环境配置数组
    • getActiveProfile

      public static String getActiveProfile()
      获取第一个激活的环境配置
      Returns:
      环境配置 fcn
    • registerBeanDefinition

      public static void registerBeanDefinition(Class<?> clazz)
      动态注册Bean定义
      Parameters:
      clazz - Bean类型
    • registerSingleton

      public static void registerSingleton(Class<?> clazz)
      动态注册单例Bean
      Parameters:
      clazz - Bean类型
    • registerSingleton

      public static void registerSingleton(Class<?> clazz, Object bean)
      动态注册单例Bean
      Parameters:
      clazz - Bean类型
      bean - Bean实例
    • unRegisterSingleton

      public static void unRegisterSingleton(String beanName)
      注销单例Bean
      Parameters:
      beanName - Bean名称
    • publishEvent

      public static void publishEvent(Object event)
      发布事件
      Parameters:
      event - 事件对象
    • refreshContext

      public static void refreshContext()
      刷新Spring上下文
    • removeContext

      public static void removeContext()
      关闭并移除Spring上下文
    • getApplicationName

      public static String getApplicationName()
      获取应用程序名称
      Returns:
      应用程序名称
    • isDemoMode

      public static boolean isDemoMode()
      判断是否为开发或测试模式
      Returns:
      是否为开发/测试模式
    • isDevMode

      public static boolean isDevMode()
      判断是否为开发环境
      Returns:
      是否为开发环境
    • isTestMode

      public static boolean isTestMode()
      判断是否为测试环境
      Returns:
      是否为测试环境
    • replacePlaceholders

      public static String replacePlaceholders(String text, org.springframework.core.env.ConfigurableEnvironment env)
      替换文本中的环境变量占位符
      Parameters:
      text - 待处理文本
      env - 环境配置
      Returns:
      替换后的文本
    • resolveBeanClassType

      public static Class<?> resolveBeanClassType(org.springframework.beans.factory.config.BeanDefinition beanDefinition)
      从BeanDefinition解析Bean的类类型
      Parameters:
      beanDefinition - Bean定义,非空
      Returns:
      Bean的类类型,可能为null
      Throws:
      IllegalArgumentException - 如果beanDefinition为null
    • isFromConfigurationSource

      public static boolean isFromConfigurationSource(org.springframework.beans.factory.config.BeanDefinition beanDefinition)
      检查BeanDefinition是否来源于配置类(而非其他配置源,如XML或组件扫描)。

      该方法通过检查BeanDefinition的类全限定名是否以 org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader 开头, 判断其是否由Spring的@Configuration类生成。通常用于区分注解配置与传统XML配置或组件扫描的Bean定义。

      Parameters:
      beanDefinition - 要检查的Bean定义对象,非空
      Returns:
      如果BeanDefinition来源于配置类,返回true;否则返回false
      Throws:
      IllegalArgumentException - 如果beanDefinition为null
    • setApplicationContext

      public void setApplicationContext(org.springframework.context.ApplicationContext applicationContext)
      Specified by:
      setApplicationContext in interface org.springframework.context.ApplicationContextAware