事件系统学习笔记

标签解析

EventBeanDefinitionParaser为标签解析器对应的类,通过重写EventBeanDefinitionParaserparse()方法对xml标签进行解析。

关键方法registAllReceivers方法:

public void  registAllReceivers(Element element, ParserContext parserContext) {
    String[] classNames = findalAlllResourceClassNames(element);
    for(String className : classNames) {
        try {
            Class<?> clz =  Class.forName();
            if(clz.isAnnotationPresent(ReceiverAnno.class)) {
                BeanDefinitionBuilder builder = BeanDefinitionBuilder
                    .rootBeanDefinition(clz);
                parserContext.getRegistry().registerBeanDefinition(
                    StringUtils.uncapitalize(clz.getSimpleName()),
                    builder.getBeanDefinition()
                );
            } catch(ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    }
}