基于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 整合其它框架》章节进行详细介绍
相关推荐
于过5 分钟前
Spring注解编程模型
java·后端
北随琛烬入6 分钟前
Spark(10)配置Hadoop集群-集群配置
java·hadoop·spark
顽疲11 分钟前
从零用java实现 小红书 springboot vue uniapp (11)集成AI聊天机器人
java·vue.js·spring boot·ai
Yan-英杰28 分钟前
DeepSeek-R1模型现已登录亚马逊云科技
java·大数据·人工智能·科技·机器学习·云计算·deepseek
TDengine (老段)39 分钟前
TDengine 中的日志系统
java·大数据·数据库·物联网·时序数据库·tdengine·iotdb
不想学习!!40 分钟前
linux之进程控制
java·linux·服务器
nlog3n2 小时前
Java外观模式详解
java·开发语言·外观模式
Mryan20052 小时前
SpringBoot项目报错: 缺少 Validation
java·spring boot
SnXJi_2 小时前
开源赋能,双驱协同:纷析云财务与进销存软件助力企业数字化转型
java·gitee·开源·开源软件
eternal__day3 小时前
第三期:深入理解 Spring Web MVC [特殊字符](数据传参+ 特殊字符处理 + 编码问题解析)
java·前端·spring·java-ee·mvc