基于Xml方式Bean的配置-命名空间种类

Spring的标签

  • Spring的xml标签大体上分为两类,一种是默认标签,一种是自定义标签

    • 默认标签:就是不用额外导入其它命名空间约束的标签,例如<bean>标签
      *

      |------------|----------------------------|
      | 标签 | 作用 |
      | <beans> | 一般作为xml配置根标签,其他标签都是该标签的子标签 |
      | <bean> | Bean的配置标签 |
      | <import> | 外部资源导入标签 |
      | <alias> | 指定bean的别名标签 |

    • 自定义标签:就是需要额外引入其它命名空间约束,并通过前缀引用的标签,例如

      复制代码
      <context:property-placeholder/>

默认标签

复制代码
#### \<beans\>标签的使用
  • <beans>标签,除了经常作为跟标签以外,还可以嵌套在跟标签以内,使用profile属性切换开发环境
    *

    XML 复制代码
        <!--    todo 配置测试环境下,需要加载的bean实例-->
        <beans profile="test">
            <!--todo 配置开发环境下,需要加载的bean实例-->
            <beans profile="dev">
    • 可以使用以下两种方式指定被激活的环境

      • 使用命令行动态参数,虚拟机动态参数加载-Dspring.profile.active=test

      • 使用代码的方式设置环境变量,System.setProperty("spring.profiles.active","test")

        • 具体代码

        • 注意指定环境的代码需要在创建工厂之间指定

        java 复制代码
                // 指定环境
                System.setProperty("spring.profiles.active", "dev");
                ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
                UserServiceImpl userServiceImpl = (UserServiceImpl) context.getBean("userService1");
                System.out.println(userServiceImpl);
        • 配置文件如下:

          XML 复制代码
              <beans profile="dev">
                  <bean id="userService1" class="com.example.Service.Impl.UserServiceImpl"></bean>
              </beans>
        • 运行结果如下:

复制代码
#### \<import\>标签的使用
  • <import>标签,用于导入其它配置标签文件,项目变大后,就会导致一个配置文件内容过多,可以将一个配置文件根据业务模块进行划分,划分后,最终通过<import>标签导入到一个主配置文件中,项目加载主配置文件就连同导入的文件一并加载(当然也可以通过代码进行导入不同配置文件,但是太过于繁琐,使用该标签时,我们只用在创建容器时,只需要加载一个著配置文件即可
    *

    XML 复制代码
    <!--    todo  导入另一个配置文件-->
        <import resource="beans.xml"/>
    • 导入之后,就可以调用导入配置文件中配置设置的<bean>对象了
复制代码
#### \<alias\>标签的使用
  • <alias>标签是为某个Bean添加别名,与在<bean>标签上使用name属性添加别名的方式一样
    *

    XML 复制代码
        <bean id="userDAO" class="com.example.DAO.Impl.UserDAOImpl">
        </bean>
        <alias name="userDAO" alias="xxx"/>
        <alias name="userDAO" alias="yyy"/>
    • 测试类代码

      java 复制代码
              System.setProperty("spring.profiles.active", "dev");
              ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("application.xml");
              UserDAO userDAO = (UserDAO) context.getBean("xxx");
              System.out.println(userDAO);
复制代码
#### \<bean\>标签的使用

* 太常见了,不做赘述

其自定义标签

  • Spring的自定义标签需要引入外部的命名空间,并为外部的命名空间指定前缀,使用<前缀:标签>的形式的标签,称之为自定义标签,自定义标签的解析流程也是Spring xml拓展点方式之一,在《Spring 整合其它框架》章节进行详细介绍
相关推荐
YuTaoShao2 小时前
【LeetCode 热题 100】131. 分割回文串——回溯
java·算法·leetcode·深度优先
源码_V_saaskw2 小时前
JAVA图文短视频交友+自营商城系统源码支持小程序+Android+IOS+H5
java·微信小程序·小程序·uni-app·音视频·交友
超浪的晨2 小时前
Java UDP 通信详解:从基础到实战,彻底掌握无连接网络编程
java·开发语言·后端·学习·个人开发
双力臂4043 小时前
Spring Boot 单元测试进阶:JUnit5 + Mock测试与切片测试实战及覆盖率报告生成
java·spring boot·后端·单元测试
Edingbrugh.南空3 小时前
Aerospike与Redis深度对比:从架构到性能的全方位解析
java·开发语言·spring
QQ_4376643144 小时前
C++11 右值引用 Lambda 表达式
java·开发语言·c++
永卿0014 小时前
设计模式-迭代器模式
java·设计模式·迭代器模式
誰能久伴不乏4 小时前
Linux如何执行系统调用及高效执行系统调用:深入浅出的解析
java·服务器·前端
慕y2744 小时前
Java学习第七十二部分——Zookeeper
java·学习·java-zookeeper
midsummer_woo4 小时前
基于spring boot的医院挂号就诊系统(源码+论文)
java·spring boot·后端