spring如何解析元素
来源:互联网 发布:光纤交换机端口类型 编辑:程序博客网 时间:2024/05/22 16:44
spring如何解析元素
class DefaultNamespaceHandlerResolver:public NamespaceHandler resolve(String namespaceUri) { // 获取命名空间处理器 Map<String, Object> handlerMappings = getHandlerMappings(); // 获取对应的处理器classname Object handlerOrClassName = handlerMappings.get(namespaceUri); String className = (String) handlerOrClassName; try { // 反射获取处理器的对象 Class<?> handlerClass = ClassUtils.forName(className, this.classLoader); NamespaceHandler namespaceHandler = (NamespaceHandler) BeanUtils.instantiateClass(handlerClass); 调用init方法 namespaceHandler.init(); ... }class NamespaceHandler: public void init() { // 不同的命名空间处理器调用各自的registerBeanDefinitionParser(),注册BeanDefinition解析器方法 // 下面的例子是解析scan,也就是常用的<context:component-scan>注解扫描标签的解析器 registerBeanDefinitionParser("scan", new MapperScannerBeanDefinitionParser()); } class NamespaceHandlerSupport: // 所谓的注册也就是把解析器放到一个Map<String,BeanDefinitionParser> parsers中 protected final void registerBeanDefinitionParser(String elementName, BeanDefinitionParser parser) { this.parsers.put(elementName, parser); }
最终会根据元素的名字去选择合适的解析器对元素进行解析,
如果自己使用SAX解析xml,当元素没有命名空间或者解析器的命名空间支持特性没有打开时是空串。注意,可以使用SAXParserFactory的public void setNamespaceAware(boolean awareness)打开支持命名空间特性。
0 0
- spring如何解析元素
- Spring中BeanFactory配置文件的元素解析
- Spring解析子元素constructor-arg
- spring如何解析通配符路径
- spring源码附录(5)解析子元素constructor-arg
- spring源码附录(6)解析子元素property
- spring源码解析之bean的子元素
- 实战解析:如何整合iBatis和Spring
- spring定时任务如何运行 schedule解析
- Android中如何解析网页,获取网页中的元素内容
- HashSet如何保证元素的唯一性-跟踪源码解析
- Spring的<aop:declare-parents>元素如何使用,有范例
- spring中如何给集合元素注入值(第四篇)
- Spring 3.2 源码解析 -- XML bean 元素到 BeanDefinition 解析过程
- spring IOC源码之解析xml中各个元素的过程
- 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常
- 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常
- 系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常
- XmlNode中Value和InnerText的区别
- Vuejs关闭打开的窗口后刷新父页面
- Bioinfo excerise 20170309-1
- Java面试整理 错题集(下)
- java基础教程
- spring如何解析元素
- 关于MJRefresh报[NSTaggedPointerString substringToIndex:]的小问题
- docker入门
- java基础--切割字符串
- JAVA通过反射了解集合泛型本质
- MAC 下启动apache,php,mysql
- C# 关于事件 委托的理解
- ARTSPConnection::receive
- jquery的$().each,$.each的区别