基于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 整合其它框架》章节进行详细介绍
相关推荐
oak隔壁找我17 小时前
Spring AI 实现MCP简单案例
java·人工智能·后端
大头an17 小时前
Spring事务传播机制深度解析:7种传播行为的使用场景和陷阱
java
lichong95117 小时前
【macOS 版】Android studio jdk 1.8 gradle 一键打包成 release 包的脚本
android·java·前端·macos·android studio·大前端·大前端++
失散1317 小时前
分布式专题——53 ElasticSearch高可用集群架构实战
java·分布式·elasticsearch·架构
lkbhua莱克瓦2417 小时前
Java入门——Java跨平台的原理
java·开发语言·笔记·github
秋月的私语17 小时前
批量格式化XML与JSON文件小工具
xml·json
float_com17 小时前
【java阶段练习】----- 学生管理系统
java
爱笑的源码基地17 小时前
基于Java+Spring Boot、Vue的B/S医院患者随访管理系统源码,支持二次开发,三级随访体系(出院/门诊随访)、智慧云库(表单配置)
java·vue.js·spring boot·源码·程序代码·随访系统·诊后回访
我曾遇到一束光18 小时前
Springboot3.X+security6.5+jdk21
java·开发语言
jtymyxmz18 小时前
1.1.4 Spring的下载及目录结构
java·后端·spring