基于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 整合其它框架》章节进行详细介绍
相关推荐
苹果醋341 分钟前
React源码02 - 基础知识 React API 一览
java·运维·spring boot·mysql·nginx
Hello.Reader1 小时前
深入解析 Apache APISIX
java·apache
菠萝蚊鸭1 小时前
Dhatim FastExcel 读写 Excel 文件
java·excel·fastexcel
旭东怪2 小时前
EasyPoi 使用$fe:模板语法生成Word动态行
java·前端·word
007php0072 小时前
Go语言zero项目部署后启动失败问题分析与解决
java·服务器·网络·python·golang·php·ai编程
∝请叫*我简单先生2 小时前
java如何使用poi-tl在word模板里渲染多张图片
java·后端·poi-tl
ssr——ssss2 小时前
SSM-期末项目 - 基于SSM的宠物信息管理系统
java·ssm
一棵星2 小时前
Java模拟Mqtt客户端连接Mqtt Broker
java·开发语言
鲤籽鲲2 小时前
C# Random 随机数 全面解析
android·java·c#
zquwei3 小时前
SpringCloudGateway+Nacos注册与转发Netty+WebSocket
java·网络·分布式·后端·websocket·网络协议·spring