spring学习-IOC-XML关键配置介绍

Posted 懒佯佯大哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring学习-IOC-XML关键配置介绍相关的知识,希望对你有一定的参考价值。

介绍

  • spring的xml配置项较多,这里作一个综述

配置示例

  • 如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!--xml的版本和编码方式,必须放在开始-->

<!--参考:https://www.cnblogs.com/zhao1949/p/5652167.html-->

<!--beans:xml文件的根节点-->

<!--xmlns的使用语法:
xmlns:namespace-prefix="namespaceURI"。
其中namespace-prefix为自定义前缀,只要在这个XML文档中保证前缀不重复即可;
如果namespace-prefix为空,表示默认的命名空间
namespaceURI是这个前缀对应的XML Namespace的定义。-->


<!--xmlns: xml命名空间(xml namespace),为beans的默认命名空间,一般用于spring beans的定义。
            等号后面的值为namespace的全限定名
            后续定义的元素,如果不带前缀的,都是来自默认命名空间的元素-->
<!--xmlns:xsi: 标准命名空间:xsi全名:xml schema instance,是指具体的schema资源文件里定义的的元素所遵守的规范
            即:为文档中每个命名空间指定对应的schema的样式文件,是标准组织定义的标准命名空间
            xsi为别名(缩略词),等号后面的值为xsi的命名空间的全限定名,习惯上用文档机构的官方网站和相关目录,具有很好的指导、防重复作用-->
<!--xmlns:aop: spring aop的命名空间(aop是简称,是用户自定义的命名空间)
            aop为别名(缩略词),等号后面的值为aop的命名空间的全限定名-->
<!--xmlns:p:p命名空间,为了简化bean中的属性配置
            idea会飘红。可修改:Settings -> Languages & Framworks -> Schemas & DTDs 添加连接:http://www.springframework.org/schema/p-->
<!--xsi:schemaLocation: xsi为各命名空间指定样式:定义了XML Namespace和对应的 XSD(Xml Schema Definition)文档的位置的关系
                        可以指定多个命名空间,每个命名空间分为2部分:第一个URI是定义的 XML Namespace的值,第二个URI给出Schema文档的位置

                        第二个URI的意义:
                            1. xml可以从该地址获取schema文件,对本xml文件的元素进行合法性校验
                            2. idea可以从该schema获取样式,提示idea的编辑的易用性
                        -->

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">

    <!--通过id定义一个bean, 这里使用的是默认命名空间-->
    <!--1. 通过全限定类名声明一个bean-->
    <bean class="ioc1.HelloWorldImpl"/>
    <!--这里使用的是AOP命名空间-->
    <aop:config>
        <aop:pointcut id="mycut" expression="exx"/>
    </aop:config>

    <!--采用p命名空间,简化配置
    p:message   表示这个bean里的message成员变量赋值为zzz
    p:byeWorld-ref  表示这个bean里的byeWorld成员变量引用了myByeWorld的bean
    -->
    <bean id= "myHelloWorldImpl2" class="ioc1.HelloWorldImpl" p:message="zzz" p:byeWorld-ref="myByeWorld"/>
    <bean id= "myByeWorld" class="ioc1.ByeWorld"/>

</beans>
  • 注意,在xsi:schemaLocation中定义了schema的样式地址,我们可以打开其中一个:http://www.springframework.org/schema/aop/spring-aop-4.3.xsd,可以看到,这个地址里定义了各种各样的样式标签,可以供我们使用

  • 常见的schema样式文件:

    • spring-beans-4.3.xsd:beans定义的
    • spring-aop-4.3.xsd:aop切面的
    • spring-tx-4.3.xsd:声明式事务的
    • spring-mvc-4.3.xsd:mvc框架的
    • spring-util-4.3.xsd:为简化某些复杂配置提供的
    • spring-jdbc-4.3.xsd:jdbc数据库的
    • spring-jms-4.3.xsd:jms
    • … … 等
  • 多个配置文件整合:

    • 应用开发的时候,往往会有多个xml的配置文件定义,此时,如果要导入的话,则可以采用如下两种方式:
    • 方式1:BeanFactory beanFactory1 = new ClassPathXmlApplicationContext(“a.xml”, “b.xml”);
    • 方式2:
<beans>
    <!--import:用于导入其它的配置文件的定义。 可以导入多个-->
    <!--也可以将配置文件声明为数组,传递给ApplicationContext-->
    <import resource="xxx.xml"/>
    <import resource="yyy.xml"/>
</beans>

以上是关于spring学习-IOC-XML关键配置介绍的主要内容,如果未能解决你的问题,请参考以下文章

spring学习-IOC-XML转Annotation

spring学习基于xml文件配置AOP

Spring Boot 学习笔记一(Spring Boot 介绍)

Spring Data JPA学习笔记

spring学习3:spring ioc的纯注解配置

Spring 基于注解的配置 -实验介绍