首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏玩转JavaEE

    EntityResolver 是个什么鬼?

    2.两种解析器 EntityResolver 就是用来处理 XML 验证的。 我们先来看下 EntityResolver 接口的定义: public interface EntityResolver { public abstract InputSource resolveEntity = ".xsd"; private final EntityResolver dtdResolver; private final EntityResolver schemaResolver; 在上篇文章中,我们获取 EntityResolver 是通过 getEntityResolver 方法来获取的: protected EntityResolver getEntityResolver() { if (this.entityResolver == null) { // Determine default EntityResolver to use.

    59530发布于 2020-07-02
  • 来自专栏ytao

    MyBatis之启动分析(一)

    xml解析时是否验证文档 entityResolver 加载dtd文件 variables 配置文件定义的值 xpath Xpath对象,用于对XML文件节点的操作 XPathParser 对象构造函数有 : 函数里面都处理了两件事: public XPathParser(Reader reader, boolean validation, Properties variables, EntityResolver entityResolver) { commonConstructor(validation, variables, entityResolver); this.document private void commonConstructor(boolean validation, Properties variables, EntityResolver entityResolver ) { this.validation = validation; this.entityResolver = entityResolver; this.variables

    41010发布于 2020-06-04
  • 来自专栏后台技术汇

    23天读懂23种设计模式:工厂方法模式(创建型)

    entityResolver, ErrorHandler errorHandler, int validationMode, boolean namespaceAware) throws 的细节 protected DocumentBuilder createDocumentBuilder(DocumentBuilderFactory factory, @Nullable EntityResolver entityResolver, @Nullable ErrorHandler errorHandler) throws ParserConfigurationException DocumentBuilder docBuilder = factory.newDocumentBuilder(); if (entityResolver ! = null) { docBuilder.setEntityResolver(entityResolver); } if (errorHandler !

    36720编辑于 2022-05-28
  • 来自专栏玩转JavaEE

    Spring 源码第二弹!XML 文件解析流程

    第二个 EntityResolver 主要是处理文件的验证方式的。 第三个 ErrorHandler 是一个错误处理器。 第四个 validationMode 是指 XML 文件的验证模式。 具体的调用如下: public Document loadDocument(InputSource inputSource, EntityResolver entityResolver, ErrorHandler + factory.getClass().getName() + "]"); } DocumentBuilder builder = createDocumentBuilder(factory, entityResolver 但是如果大家从来没有研究过 Spring 源码,相信本文中可能还有很多让你疑惑的地方,例如 EntityResolver 到底是干嘛用的?ValidationMode 又是啥?

    89510发布于 2020-06-24
  • 来自专栏Java Tale

    Could not resolve XML resource [null] with public ID [null]

    org.apache.tomcat.util.descriptor.LocalResolver.resolveEntity(LocalResolver.java:154) at com.sun.org.apache.xerces.internal.util.EntityResolver2Wrapper.resolveEntity (EntityResolver2Wrapper.java:176) at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.resolveEntityAsPerStax

    98920编辑于 2021-12-19
  • 来自专栏关于Java学习@宁在春

    Mybatis 源码探究 (3)创建 SqlSessionFactory对象 执行sqlSession.getMapper()方法

    public class XPathParser { private final Document document; private boolean validation; private EntityResolver entityResolver; private Properties variables; private XPath xpath; } Document(Document对象) Document EntityResolver (加载本地的DTD文件 如果解析mybatis-config.xml 配置文件,默认联网加载http://mybatis.org/dtd/mybatis-3- config.dtd 在实践中往往会提前设置EntityResolver 接口对象加载本地的DTD 文件,从而避免联网加载DTD文件。 它是EntityResolver子类,xml 的解析会基于事件触发对应的 Resolver 或 Handler,当解析到 dtd 等外部资源时会 EntityResolver的resolveEntity

    63610编辑于 2022-10-31
  • 来自专栏Java技术编程

    Mybatis 解析配置文件的源码解析

    如果开启的话,会联网加载,否则的话会加载本地的DTD文件进行验证 private boolean validation; // 用于加载本地的 DTD 文件,可以忽略不看 private EntityResolver entityResolver; // 对应 mybatis-config 配置文件中 <properties> 标签 private Properties variables; // } // 构造方法调用,用于为属性赋值 private void commonConstructor(boolean validation, Properties variables, EntityResolver entityResolver) { this.validation = validation; this.entityResolver = entityResolver; this.variables DocumentBuilder builder = factory.newDocumentBuilder(); builder.setEntityResolver(entityResolver

    1.3K40发布于 2020-05-21
  • 来自专栏爪哇缪斯

    (一)Spring源码解析:容器的基本实现

    在上面黄框圈中的EntityResolver实例,它的作用是:DTD默认寻找规则是通过网络(即:声明的DTD的URI地址)来下载相应的DTD声明,并进行认证。由于网络原因,下载速度本身就是耗时的。 那么,我们可以通过EntityResolver来实现寻找DTD声明的过程,比如:我们将DTD文件放到项目中的某个路径下,在实现时直接将此文档读取并返回给SAX即可。 黄框中的EntityResolver实例,它是一个接口,并且提供了一个resovleEntity(...)方法,源码如下所示: 那么publicId和systemId是什么呢? systemId=https://www.springframework.org/dtd/spring-beans-2.0.dtd 好了,了解了publicId和systemId之后,我们要将关注点放在对EntityResolver

    51820编辑于 2023-05-10
  • 来自专栏Java升级之路

    这一次搞懂Spring自定义标签以及注解解析原理

    this.errorHandler, getValidationModeForResource(resource), isNamespaceAware()); } protected EntityResolver getEntityResolver() { if (this.entityResolver == null) { // Determine default EntityResolver to = null) { this.entityResolver = new ResourceEntityResolver(resourceLoader); } else { this.entityResolver = new DelegatingEntityResolver(getBeanClassLoader()); } } return this.entityResolver; } public

    74320发布于 2020-09-07
  • 来自专栏chenssy

    【死磕 Spring】----- IOC 之 IOC 初始化总结

    (resource), isNamespaceAware()); } loadDocument() 方法接受五个参数: inputSource:加载 Document 的 Resource 源 entityResolver 如果要提供对 XML 名称空间的支持,则为true 对于这五个参数,有两个参数需要重点关注下:entityResolver、validationMode。 loadDocument() 在类 DefaultDocumentLoader 中提供了实现,如下: public Document loadDocument(InputSource inputSource, EntityResolver entityResolver, ErrorHandler errorHandler, int validationMode, boolean namespaceAware) throws + "]"); } // 创建文档解析器 DocumentBuilder builder = createDocumentBuilder(factory, entityResolver

    77940发布于 2018-10-22
  • 来自专栏IT当时语_青山师_JAVA技术栈

    MyBatis入门到源码分析 | 【Mybatis加载核心配置文件流程】

    ) 第四个参数是一个实体解析器:org.apache.ibatis.builder.xml.XMLMapperEntityResolver,实现了org.xml.sax.EntityResolver 【XMLMapperEntityResolver】实体解析器 org.apache.ibatis.builder.xml.XMLMapperEntityResolver,实现了org.xml.sax.EntityResolver 以下是一个简单地示例,仅仅做一个说明: public class MyResolver implements EntityResolver { public InputSource resolveEntity entityResolver) { // 这个构造器会初始化内部的一个属性:javax.xml.xpath.XPath commonConstructor(validation, variables , entityResolver); // 初始化内部属性:org.w3c.dom.Document,得到一个dom文档 this.document = createDocument(new

    48100编辑于 2023-05-05
  • 来自专栏hml_知识记录

    定制SAX解析器的执行自定义实体解析

    此类必须在扩展%XML.SAX.EntityResolver,并且必须实现 resolveEntity()方法,该方法具有以下签名:method resolveEntity(publicID As %Library.String ELEMENT p (#PCDATA)>要阅读本文档,需要如下所示的自定义实体解析器:Class CustomResolver.Resolver Extends %XML.SAX.EntityResolver Else //otherwise call the default resolver { Set res=##class(%XML.SAX.EntityResolver

    72810编辑于 2022-07-05
  • 来自专栏hml_知识记录

    XML其他示例

    ---------------| i%Document = "2@%XML.Document" <Set>| r%Document = "" <Set>| i%EntityResolver = ""| r%EntityResolver = ""+----------------------------------------------------- DHC-APP 2e1>zw reader.EntityResolver

    36310编辑于 2022-07-05
  • 来自专栏chenssy

    【死磕 Spring】----- IOC 之 IOC 初始化总结

    (resource), isNamespaceAware()); } loadDocument() 方法接受五个参数: inputSource:加载 Document 的 Resource 源 entityResolver 如果要提供对 XML 名称空间的支持,则为true 对于这五个参数,有两个参数需要重点关注下:entityResolver、validationMode。 loadDocument() 在类 DefaultDocumentLoader 中提供了实现,如下: public Document loadDocument(InputSource inputSource, EntityResolver entityResolver, ErrorHandler errorHandler, int validationMode, boolean namespaceAware) throws + "]"); } // 创建文档解析器 DocumentBuilder builder = createDocumentBuilder(factory, entityResolver

    73810发布于 2018-10-22
  • 来自专栏好好学习

    MyBatis 源码分析篇---配置文件的解析过程

    ; } //* XPathParser public XPathParser(Reader reader, boolean validation, Properties variables, EntityResolver entityResolver) { commonConstructor(validation, variables, entityResolver); this.document = InputSource(reader)); } private void commonConstructor(boolean validation, Properties variables, EntityResolver entityResolver) { this.validation = validation; this.entityResolver = entityResolver; this.variables factory.setExpandEntityReferences(true); DocumentBuilder builder = factory.newDocumentBuilder(); //需要注意的就是定义了EntityResolver

    78430发布于 2021-08-18
  • 来自专栏CodeGuide | 程序员编码指南

    几百行代码写个Mybatis,原理搞的透透的!

    entityResolver) reader:使用字符流创建新的输入源,用于对XML文件的读取 validation:是否进行DTD校验 variables:属性配置信息 entityResolver 系统标示符) XPathParser.java public XPathParser(Reader reader, boolean validation, Properties variables, EntityResolver entityResolver) { commonConstructor(validation, variables, entityResolver); this.document = createDocument new InputSource(reader)); } private void commonConstructor(boolean validation, Properties variables, EntityResolver entityResolver) { this.validation = validation; this.entityResolver = entityResolver; this.variables

    76820发布于 2021-08-02
  • 来自专栏CodeGuide | 程序员编码指南

    源码分析(1.4万字) | Mybatis接口没有实现类为什么可以执行增删改查

    entityResolver) reader:使用字符流创建新的输入源,用于对XML文件的读取 validation:是否进行DTD校验 variables:属性配置信息 entityResolver 系统标示符) XPathParser.java public XPathParser(Reader reader, boolean validation, Properties variables, EntityResolver entityResolver) { commonConstructor(validation, variables, entityResolver); this.document = createDocument new InputSource(reader)); } private void commonConstructor(boolean validation, Properties variables, EntityResolver entityResolver) { this.validation = validation; this.entityResolver = entityResolver; this.variables

    1.2K20发布于 2020-07-14
  • 来自专栏码云大作战

    Mybatis源码学习(一)SqlSessionFactoryBuilder

    ; //... } public XPathParser(InputStream inputStream, boolean validation, Properties variables, EntityResolver entityResolver) { commonConstructor(validation, variables, entityResolver); //调用jdk方法,生成document树

    93020发布于 2020-08-26
  • 来自专栏WebJ2EE

    Spring周边:XML

    DocumentBuilder DocumentBuilder docBuilder = factory.newDocumentBuilder(); docBuilder.setEntityResolver(entityResolver entityResolver, ErrorHandler errorHandler) throws ParserConfigurationException { DocumentBuilder docBuilder = factory.newDocumentBuilder(); if (entityResolver ! = null) { docBuilder.setEntityResolver(entityResolver); } if (errorHandler java.io.FileNotFoundException; import java.io.IOException; public class WebXmlDtdResolver implements EntityResolver

    2.3K10发布于 2019-10-24
  • 来自专栏信安百科

    CVE-2025-30220|GeoServer XXE漏洞

    CVE-2025-30220: GeoTools库使用Eclipse XSD库来处理XML数据,并且未正确配置EntityResolver,这导致了XML外部实体 (XXE)漏洞。

    1.8K10编辑于 2025-07-30
领券