多配置文件加载 ‹import›

Exisi 2022-06-28 07:47:45
Categories: Tags:
  • 为了更好的编辑 applicationContext.xml中的文件,Spring 提供了 <import> 标签,便于将配置拆分为各个配置文件,使用时一次导入,避免互相影响

 

  • applicationContext.xml 文件中只提供导入作为索引,不用于配置

 

  • <import> 有以下参数:

参数

描述

resource

指定要导入的外部配置文件的URL地址。这个URL可以是相对路径或绝对路径,也可以是一个完整的URL地址。。

 

  • 以下配置文件为例,resource 中包含有多个配置文件

 

resource/

student/

spring-student.xml

spring-school.xml

示例

  • spring-student.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans.xsd">

 

<bean id="myStudent" class="com.exi.model.Student">

  <property name="name" value="李四" />

  <property name="age" value="22" />

 </beans>

 

  • spring-school.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans.xsd">

 

<bean id="mySchool" class="com.exi.model.School">

  <property name="name" value="北京大学" />

  <property name="address" value="北京的海淀区" />

 </beans>

 

  • applicationContext.xml
    • 使用路径导入

示例

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    xsi:schemaLocation="http://www.springframework.org/schema/beans

    http://www.springframework.org/schema/beans/spring-beans.xsd">

 

<!-- 单独导入 -->

<import resource="classpath:student/spring-student.xml" />

<import resource="classpath:student/spring-school.xml" />

 

<!-- 使用通配符*, 批量导入 --->

<import resource="classpath:student/spring-*.xml" />

 

 </beans>

  • 通配符导入方法不能包含当前配置文件,即 applicationContext.xml

 

  • 不建议使用相对的 “../” 路径引用父目录中的文件。这样做会创建对当前应用程序外部文件的依赖关系。特别是,不建议对 classpath: URL (例如 classpath:../services.xml) 使用此引用,在 URL 中,运行时解析过程选择 “最近” Classpath 根,然后查看其父目录。Classpath 配置的更改可能导致选择其他错误的目录。