程序包 xyz.xiezc.ioc
类 ApplicationContextUtil
- java.lang.Object
-
- xyz.xiezc.ioc.ApplicationContextUtil
-
- 所有已实现的接口:
AnnotationContext,BeanCreateContext,BeanDefinitionContext,EventPublisherContext,PropertiesContext
public class ApplicationContextUtil extends Object implements BeanDefinitionContext, AnnotationContext, EventPublisherContext, BeanCreateContext, PropertiesContext
容器,装载bean的容器,以及其他的所有的需要存放的对象都在这里
-
-
字段概要
字段 修饰符和类型 字段 说明 static ExecutorServiceexecutorService全局线程池
-
构造器概要
构造器 构造器 说明 ApplicationContextUtil()
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 <T extends Annotation>
voidaddAnnotationHandler(AnnotationHandler<T> annotationHandler)添加一个注解处理器voidaddApplicationListener(String eventName, ApplicationListener listener)Add a listener to be notified of all events.voidaddBeanDefinition(String beanName, Class<?> beanClass, BeanDefinition beanDefinition)注入bean到容器中voidaddNotHandleAnnotation(Class<? extends Annotation> clazz)添加一个注解处理器voidaddSetting(cn.hutool.setting.Setting setting)voidcheckFieldDefinitions(Set<FieldDefinition> annotationFiledDefinitions)检验字段的注入对象voidcheckInitMethod(MethodDefinition methodBeanInvoke)检查init方法是否符合要求voidcheckMethodParam(MethodDefinition methodBeanInvoke)检验方法的参数注入对象BeanDefinitioncreateBean(BeanDefinition beanDefinition)开始创建beanvoiddoInitMethod(BeanDefinition beanDefinition)调用beanCollection<BeanDefinition>getAllBeanDefintion()获取容器中的所有BeanDefinition<T extends Annotation>
AnnotationHandler<T>getAnnotationAnnotationHandler(Class<T> clazz)获取一个注解上面的注解处理器 注解的注解的处理器BeanCreateStrategygetBeanCreateStrategy(BeanTypeEnum beanTypeEnum)获取一种bean的类型创建策略BeanDefinitiongetBeanDefinition(Class<?> beanClass)获取一样的class的beanBeanDefinitiongetBeanDefinition(String beanName)获取这个name一样的beanBeanDefinitiongetBeanDefinition(String beanName, Class<?> beanClass)获取name和class 都一样的beanList<BeanDefinition>getBeanDefinitions(Class<?> beanClass)选择这个class类的bean和这个类型的子beanList<BeanDefinition>getBeanDefinitions(String beanName)获取name一样,但是包含子bean的所有bean<T extends Annotation>
AnnotationHandler<T>getClassAnnotationHandler(Class<T> clazz)获取一个Class上面的注解处理器<T extends Annotation>
AnnotationHandler<T>getFieldAnnotationHandler(Class<T> clazz)获取一个Field上面的注解处理器BeanDefinitiongetInjectBeanDefinition(String beanName, Class<?> beanClass)根据name和class 获取可以注入的一个bean。<T extends Annotation>
AnnotationHandler<T>getMethodAnnotationHandler(Class<T> clazz)获取一个Method上面的注解处理器<T extends Annotation>
AnnotationHandler<T>getParameterAnnotationHandler(Class<T> clazz)获取一个方法参数 parameter上面的注解处理器cn.hutool.setting.SettinggetSetting()voidinjectFieldValue(BeanDefinition beanDefinition)设置bean的字段属性值booleanisCircularDependenceBeanDefinition(BeanDefinition beanDefinition)判断BeanDefinition是否是循环依赖, 同时也把当前的BeanDefinition放入正在创建的bean的缓存中booleanisNotHandleAnnotation(Class<? extends Annotation> clazz)判断是否是不需要注解处理器处理的注解BeanDefinitionnewInstance(BeanDefinition beanDefinition)初始化bean的第一步,通过反射生成对象, 同时改变下状态.voidpublisherEvent(ApplicationEvent event)Multicast the given application event to appropriate listeners.voidputBeanCreateStrategy(BeanCreateStrategy beanCreateStrategy)增加一种bean的类型创建策略voidremoveAllListeners()Remove all listeners registered with this multicaster.voidremoveApplicationListener(String eventName)Remove a listener from the notification list.voidremoveCreatingBeanDefinition(BeanDefinition beanDefinition)移除正在创建中的bean
-
-
-
字段详细资料
-
executorService
public static ExecutorService executorService
全局线程池
-
-
方法详细资料
-
addAnnotationHandler
public <T extends Annotation> void addAnnotationHandler(AnnotationHandler<T> annotationHandler)
从接口复制的说明:AnnotationContext添加一个注解处理器- 指定者:
addAnnotationHandler在接口中AnnotationContext
-
addNotHandleAnnotation
public void addNotHandleAnnotation(Class<? extends Annotation> clazz)
从接口复制的说明:AnnotationContext添加一个注解处理器- 指定者:
addNotHandleAnnotation在接口中AnnotationContext
-
isNotHandleAnnotation
public boolean isNotHandleAnnotation(Class<? extends Annotation> clazz)
从接口复制的说明:AnnotationContext判断是否是不需要注解处理器处理的注解- 指定者:
isNotHandleAnnotation在接口中AnnotationContext- 返回:
-
getClassAnnotationHandler
public <T extends Annotation> AnnotationHandler<T> getClassAnnotationHandler(Class<T> clazz)
从接口复制的说明:AnnotationContext获取一个Class上面的注解处理器- 指定者:
getClassAnnotationHandler在接口中AnnotationContext- 返回:
-
getMethodAnnotationHandler
public <T extends Annotation> AnnotationHandler<T> getMethodAnnotationHandler(Class<T> clazz)
从接口复制的说明:AnnotationContext获取一个Method上面的注解处理器- 指定者:
getMethodAnnotationHandler在接口中AnnotationContext- 返回:
-
getFieldAnnotationHandler
public <T extends Annotation> AnnotationHandler<T> getFieldAnnotationHandler(Class<T> clazz)
从接口复制的说明:AnnotationContext获取一个Field上面的注解处理器- 指定者:
getFieldAnnotationHandler在接口中AnnotationContext- 返回:
-
getAnnotationAnnotationHandler
public <T extends Annotation> AnnotationHandler<T> getAnnotationAnnotationHandler(Class<T> clazz)
从接口复制的说明:AnnotationContext获取一个注解上面的注解处理器 注解的注解的处理器- 指定者:
getAnnotationAnnotationHandler在接口中AnnotationContext- 返回:
-
getParameterAnnotationHandler
public <T extends Annotation> AnnotationHandler<T> getParameterAnnotationHandler(Class<T> clazz)
从接口复制的说明:AnnotationContext获取一个方法参数 parameter上面的注解处理器- 指定者:
getParameterAnnotationHandler在接口中AnnotationContext- 返回:
-
putBeanCreateStrategy
public void putBeanCreateStrategy(BeanCreateStrategy beanCreateStrategy)
从接口复制的说明:BeanCreateContext增加一种bean的类型创建策略- 指定者:
putBeanCreateStrategy在接口中BeanCreateContext
-
getBeanCreateStrategy
public BeanCreateStrategy getBeanCreateStrategy(BeanTypeEnum beanTypeEnum)
从接口复制的说明:BeanCreateContext获取一种bean的类型创建策略- 指定者:
getBeanCreateStrategy在接口中BeanCreateContext
-
removeCreatingBeanDefinition
public void removeCreatingBeanDefinition(BeanDefinition beanDefinition)
从接口复制的说明:BeanCreateContext移除正在创建中的bean
-
isCircularDependenceBeanDefinition
public boolean isCircularDependenceBeanDefinition(BeanDefinition beanDefinition)
从接口复制的说明:BeanCreateContext判断BeanDefinition是否是循环依赖, 同时也把当前的BeanDefinition放入正在创建的bean的缓存中- 指定者:
isCircularDependenceBeanDefinition在接口中BeanCreateContext- 返回:
-
createBean
public BeanDefinition createBean(BeanDefinition beanDefinition)
从接口复制的说明:BeanCreateContext开始创建bean- 指定者:
createBean在接口中BeanCreateContext- 返回:
-
checkFieldDefinitions
public void checkFieldDefinitions(Set<FieldDefinition> annotationFiledDefinitions)
从接口复制的说明:BeanCreateContext检验字段的注入对象- 指定者:
checkFieldDefinitions在接口中BeanCreateContext
-
newInstance
public BeanDefinition newInstance(BeanDefinition beanDefinition)
从接口复制的说明:BeanCreateContext初始化bean的第一步,通过反射生成对象, 同时改变下状态. 单独提取出来是因为很多地方会使用到这个方法- 指定者:
newInstance在接口中BeanCreateContext- 返回:
-
checkMethodParam
public void checkMethodParam(MethodDefinition methodBeanInvoke)
从接口复制的说明:BeanCreateContext检验方法的参数注入对象- 指定者:
checkMethodParam在接口中BeanCreateContext
-
checkInitMethod
public void checkInitMethod(MethodDefinition methodBeanInvoke)
从接口复制的说明:BeanCreateContext检查init方法是否符合要求- 指定者:
checkInitMethod在接口中BeanCreateContext
-
doInitMethod
public void doInitMethod(BeanDefinition beanDefinition)
从接口复制的说明:BeanCreateContext调用bean- 指定者:
doInitMethod在接口中BeanCreateContext
-
injectFieldValue
public void injectFieldValue(BeanDefinition beanDefinition)
从接口复制的说明:BeanCreateContext设置bean的字段属性值- 指定者:
injectFieldValue在接口中BeanCreateContext
-
addSetting
public void addSetting(cn.hutool.setting.Setting setting)
- 指定者:
addSetting在接口中PropertiesContext
-
getSetting
public cn.hutool.setting.Setting getSetting()
- 指定者:
getSetting在接口中PropertiesContext
-
getAllBeanDefintion
public Collection<BeanDefinition> getAllBeanDefintion()
从接口复制的说明:BeanDefinitionContext获取容器中的所有BeanDefinition- 指定者:
getAllBeanDefintion在接口中BeanDefinitionContext- 返回:
-
addBeanDefinition
public void addBeanDefinition(String beanName, Class<?> beanClass, BeanDefinition beanDefinition)
从接口复制的说明:BeanDefinitionContext注入bean到容器中- 指定者:
addBeanDefinition在接口中BeanDefinitionContext
-
getBeanDefinition
public BeanDefinition getBeanDefinition(String beanName, Class<?> beanClass)
从接口复制的说明:BeanDefinitionContext获取name和class 都一样的bean- 指定者:
getBeanDefinition在接口中BeanDefinitionContext- 返回:
- 可能为null
-
getInjectBeanDefinition
public BeanDefinition getInjectBeanDefinition(String beanName, Class<?> beanClass)
从接口复制的说明:BeanDefinitionContext根据name和class 获取可以注入的一个bean。 1. name 存在, class 一样 : 注入 2. name 存在, class有子bean: 选择子bean中name一样的注入 3. name 存在, class没有,子bean也无: 报错 4. name 不存在, class 一样: 注入 5. name 不存在, class有子bean : 选择第一个子bean注入 6. name 不存在, class无子bean: 报错- 指定者:
getInjectBeanDefinition在接口中BeanDefinitionContext- 返回:
-
getBeanDefinition
public BeanDefinition getBeanDefinition(String beanName)
从接口复制的说明:BeanDefinitionContext获取这个name一样的bean- 指定者:
getBeanDefinition在接口中BeanDefinitionContext- 返回:
-
getBeanDefinitions
public List<BeanDefinition> getBeanDefinitions(String beanName)
从接口复制的说明:BeanDefinitionContext获取name一样,但是包含子bean的所有bean- 指定者:
getBeanDefinitions在接口中BeanDefinitionContext- 返回:
-
getBeanDefinition
public BeanDefinition getBeanDefinition(Class<?> beanClass)
从接口复制的说明:BeanDefinitionContext获取一样的class的bean- 指定者:
getBeanDefinition在接口中BeanDefinitionContext- 返回:
-
getBeanDefinitions
public List<BeanDefinition> getBeanDefinitions(Class<?> beanClass)
从接口复制的说明:BeanDefinitionContext选择这个class类的bean和这个类型的子bean- 指定者:
getBeanDefinitions在接口中BeanDefinitionContext- 返回:
-
addApplicationListener
public void addApplicationListener(String eventName, ApplicationListener listener)
从接口复制的说明:EventPublisherContextAdd a listener to be notified of all events.- 指定者:
addApplicationListener在接口中EventPublisherContextlistener- the listener to add
-
removeApplicationListener
public void removeApplicationListener(String eventName)
从接口复制的说明:EventPublisherContextRemove a listener from the notification list.- 指定者:
removeApplicationListener在接口中EventPublisherContext- 参数:
eventName- the listener to remove
-
removeAllListeners
public void removeAllListeners()
从接口复制的说明:EventPublisherContextRemove all listeners registered with this multicaster.After a remove call, the multicaster will perform no action on event notification until new listeners are registered.
- 指定者:
removeAllListeners在接口中EventPublisherContext
-
publisherEvent
public void publisherEvent(ApplicationEvent event)
从接口复制的说明:EventPublisherContextMulticast the given application event to appropriate listeners. if possible as it provides better support for generics-based events.- 指定者:
publisherEvent在接口中EventPublisherContext- 参数:
event- the event to multicast
-
-