基于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 整合其它框架》章节进行详细介绍
相关推荐
都叫我大帅哥2 小时前
Java日期时间三十年战争:从Date考古到LocalDateTime革命,以及数据库与前端的那点事儿
java
Muscleheng3 小时前
SpringBoot 集成 DeepSeek 实现 RAG 文档问答
java·spring boot·ai·springai
2501_936415693 小时前
可变参数&综合练习&斗地主游戏
java·windows·游戏
极客先躯4 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
xqqxqxxq5 小时前
Java Socket 多人聊天室(私聊+群聊)技术笔记(V4版本)
java·网络·笔记
wang09075 小时前
自己动手写一个spring之aop_1
java·后端·spring
国科安芯6 小时前
FreeRTOS RISC-V 浮点上下文切换移植:在 IAR 工程中完整保存 FPU 寄存器
java·开发语言·单片机·嵌入式硬件·算法·系统架构·risc-v
deng12046 小时前
【Thread类的用法(1)-- Thread类的基本用法】
java·java-ee
suconnect6 小时前
Spring Boot接入企业RAG:文档切分、向量检索、权限过滤和答案溯源
java·spring boot·后端
weixin_BYSJ19876 小时前
springboot校园自习室管理小程序---附源码32142
java·javascript·spring boot·python·django·flask·php