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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic String获取第一个激活的环境配置static String[]获取当前激活的环境配置static String获取应用程序名称static <T> T通过类型获取Beanstatic <T> T通过名称获取Beanstatic <T> T通过名称和类型获取Beanstatic <T> T通过名称和参数获取Beanstatic <T> TgetBean(org.miaixz.bus.core.lang.reflect.TypeReference<T> reference) 通过类型参考获取带泛型的Beanstatic org.springframework.beans.factory.ListableBeanFactory获取Bean工厂static String[]getBeanNamesForType(Class<?> type) 获取指定类型的Bean名称getBeansOfType(Class<T> type) 获取指定类型的所有Beanstatic org.springframework.context.ConfigurableApplicationContext获取Spring上下文static StringgetProperty(String key) 获取配置属性值static boolean判断是否为开发或测试模式static boolean判断是否为开发环境static booleanisFromConfigurationSource(org.springframework.beans.factory.config.BeanDefinition beanDefinition) 检查BeanDefinition是否来源于配置类(而非其他配置源,如XML或组件扫描)。static boolean判断是否为测试环境static voidpublishEvent(Object event) 发布事件static void刷新Spring上下文static voidregisterBeanDefinition(Class<?> clazz) 动态注册Bean定义static voidregisterSingleton(Class<?> clazz) 动态注册单例Beanstatic voidregisterSingleton(Class<?> clazz, Object bean) 动态注册单例Beanstatic void关闭并移除Spring上下文static StringreplacePlaceholders(String text, org.springframework.core.env.ConfigurableEnvironment env) 替换文本中的环境变量占位符static Class<?> resolveBeanClassType(org.springframework.beans.factory.config.BeanDefinition beanDefinition) 从BeanDefinition解析Bean的类类型voidsetApplicationContext(org.springframework.context.ApplicationContext applicationContext) static voidsetContext(org.springframework.context.ConfigurableApplicationContext context) 设置Spring上下文static voidunRegisterSingleton(String beanName) 注销单例Bean
-
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
通过名称获取Bean- Type Parameters:
T- Bean类型- Parameters:
name- Bean名称- Returns:
- Bean实例
-
getBean
通过类型获取Bean- Type Parameters:
T- Bean类型- Parameters:
clazz- Bean类型args- 构造函数参数- Returns:
- Bean实例
-
getBean
通过名称和参数获取Bean- Type Parameters:
T- Bean类型- Parameters:
name- Bean名称args- 构造函数参数- Returns:
- Bean实例
-
getBean
通过名称和类型获取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
获取指定类型的所有Bean- Type Parameters:
T- Bean类型- Parameters:
type- Bean类型- Returns:
- Bean名称到实例的映射
-
getBeanNamesForType
获取指定类型的Bean名称- Parameters:
type- Bean类型- Returns:
- Bean名称数组
-
getProperty
获取配置属性值- Parameters:
key- 属性键- Returns:
- 属性值
-
getActiveProfiles
获取当前激活的环境配置- Returns:
- 环境配置数组
-
getActiveProfile
获取第一个激活的环境配置- Returns:
- 环境配置 fcn
-
registerBeanDefinition
动态注册Bean定义- Parameters:
clazz- Bean类型
-
registerSingleton
动态注册单例Bean- Parameters:
clazz- Bean类型
-
registerSingleton
动态注册单例Bean- Parameters:
clazz- Bean类型bean- Bean实例
-
unRegisterSingleton
注销单例Bean- Parameters:
beanName- Bean名称
-
publishEvent
发布事件- Parameters:
event- 事件对象
-
refreshContext
public static void refreshContext()刷新Spring上下文 -
removeContext
public static void removeContext()关闭并移除Spring上下文 -
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:
setApplicationContextin interfaceorg.springframework.context.ApplicationContextAware
-