• Java web项目配置相关


    引申

    XML 命名空间(XML Namespaces)

    XML Schema 教程

    XSD(XML Schema Definition

    XML Schema 语言也称作 XML Schema 定义。

    XML Schema描述了XML文档的结构。

    XML Schema 是基于 XML 的 DTD 替代者。
    可以用一个指定的XML Schema来验证某个XML文档,以检查该XML文档是否符合其要求。文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。
    一个XML Schema会定义:文档中出现的元素、文档中出现的属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认 和固定值。
    XSD是DTD替代者的原因,一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。
    XML Schema的优点:
    1) XML Schema基于XML,没有专门的语法
    2) XML Schema可以象其他XML文件一样解析和处理
    3) XML Schema比DTD提供了更丰富的数据类型.
    4) XML Schema提供可扩充的数据模型。
    5) XML Schema支持综合命名空间
    6) XML Schema支持属性组。

    DTD(Documnet Type Definition)
    DTD即文档类型定义,是一种XML约束模式语言,是XML文件的验证机制,属于XML文件组成的一部分。
    DTD 是一种保证XML文档格式正确的有效方法,可以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。 一个 DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。

    DTD和XSD相比:DTD 是使用非 XML 语法编写的。
    DTD 不可扩展,不支持命名空间,只提供非常有限的数据类型 .

    一、SSM项目通用配置文件:

    web.xml(web),

    applicationContext.xml(spring),

    spring-mvc.xml(mvc),

    spring-mybatis.xml(spring-mybatis),

    mybatis-config.xml(mybatis),

    mybatis-mapper-*.xml(mapper)

    二、spring配置文件头部配置解析

    <?xml version="1.0" encoding="UTF-8"?>  
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xmlns:p="http://www.springframework.org/schema/p"  
        xmlns:mvc="http://www.springframework.org/schema/mvc"  
        xmlns:context="http://www.springframework.org/schema/context"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans  
                            http://www.springframework.org/schema/beans/spring-beans-*.xsd  
                            http://www.springframework.org/schema/mvc  
                            http://www.springframework.org/schema/mvc/spring-mvc-*.xsd  
                            http://www.springframework.org/schema/context  
                            http://www.springframework.org/schema/context/spring-context-*.xsd">
      <!--具体配置细节-->
    </beans>  

    说明:

    1、xmlns="http://www.springframework.org/schema/beans"

    默认命名空间: beans,bean对应的命名空间

    2、xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    声明XML Schema 实例,辅助初始化bean。

    3、其他命名空间

    xmlns:p="http://www.springframework.org/schema/p"

    xmlns:mvc="http://www.springframework.org/schema/mvc"

    xmlns:context="http://www.springframework.org/schema/context"

    。。。。。。

    4、xsi:schemaLocation 

    为上面配置的命名空间指定xsd(XML Schema Definition)规范文件,以便实现配置文件的校错与只能提示。注意版本号

    5、xsd文件的位置

    在对应jar包中

     6、Spring中的Schema机制解析

      Spring在启动时是要检验XML文件的,如果我们打开上面的xmlns后面的链接,不难发现那是保存各个版本spring-beans-*.xsd的远程文档。如果断网,name就无法访问这些文件了,Spring已经将此情况考虑进去了,Spring默认从本地加载XSD文件。
      首先说明Spring创建Schema的基本过程:

    • 设计配置属性和JavaBean。也就是设计好配置项,并通过JavaBean来建模。
    • 编写XSD文件。(详细可参考:Schema 教程)
    • 编写NamespaceHandler和BeanDefinitionParser完成解析工作
    • 编写spring.handlers和spring.schemas串联起所有部件
    • 在Bean文件中应用。

    7、参考资料

    spring配置文件头部配置解析

    Spring学习笔记(三)—基于XML Schema的配置方式

    为什么在Spring的配置里,最好不要配置xsd文件的版本号

    三、web.xml

    web.xml:配置servlet相关信息

    1、contextConfigLocation

    作用:指定spring配置文件路径;

    备注:context-param:servlet上下文参数,供所有Servlet使用,其中的context代表servletContext可以配置多个上下文参数

    spring会读取参数名为contextConfigLocation的参数,取配置路径,在ContextLoader类中用来加载spring配置。 

    示例:

    <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

    备注:如果没有指定的话,默认会去/WEB-INF/下加载applicationContext.xml。

    2、classpath: 与 classpath*:  的区别

    classpath:只会到你的class路径中查找找文件; 

    classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找。

    备注:"**/" 表示的是任意目录; 

    详细说明

    3、web.xml 中的listener、 filter、servlet 加载顺序及其详解

    web.xml 的加载顺序是:context-param -> listener -> filter -> servlet ,而同个类型之间的实际程序调用的时候的顺序是根据对应的 mapping 的顺序进行调用的。

     四、WEB-INF目录,META-INF目录

    WEB-INF目录与META-INF目录详解

    JAR包中的MANIFEST.MF文件详解以及编写规范

    参考资料

    SpringMVC XML配置

  • 相关阅读:
    gdb php
    redis启动过程
    php protobuf 安装使用2
    php protobuf 安装使用
    服务治理
    base64编码
    redis-quicklist
    redis-ziplist
    redis-zset数据结构探索
    su root 出现 su: Authentication failure
  • 原文地址:https://www.cnblogs.com/wangwangfei/p/7132258.html
Copyright © 2020-2023  润新知