# 配置文件加载属性

# 操作

  1. 创建父子工程

  2. 在子工程中 main 下创建 resources 目录并创建 jdbc 配置文件

image_2023-03-07-11-30-52

  1. 在父工程 pom.xml 中配置自定义属性与子工程的 properties 文件的引用相对应
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <url>jdbc:mysql://127.0.0.1:3306/ssm_db?characterEncoding=utf-8&amp;serverTimezone=UTC</url>
  </properties>
  1. 在父工程 pom 中定义指定文件使用此 pom 中定义的属性标签
<modules>
  <module>maven-spring-zi</module>
    <module>maven-spring-zi01</module>
  </modules>
  <build>
    <resources>
      <resource>
<!--        配置指定哪个配置文件使用此 pom 中定义的属性 -->
        <directory>../maven-spring-zi/src/main/resources</directory>
<!--        开启过滤表示上面是资源文件 -->
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

指定文件路径前面../ 为从当前 pom 路径出来找到子工程中的 resources 目录并使用其中的资源配置文件

image_2023-03-07-11-40-18

  1. 将其 Install

image_2023-03-07-11-45-01

  1. 查看 jar 包中的 druid 配置文件是否引用到了 pom 中定义标签的属性值

image_2023-03-07-12-05-50

更改父 pom 中的属性标签

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <url>jdbc:mysql://127.1.1.1:3306/ssm_db?characterEncoding=utf-8&amp;serverTimezone=UTC</url>
  </properties>

Install, 查看 jar 包中的 druid.properties

image_2023-03-07-14-06-20

# 解决配置多个子工程配置文件问题

  • ${project.basedir}: 当前项目所在目录,因为子项目继承了父项目所以子项目也会生效该语句
<build>
    <resources>
      <resource>
<!--        配置指定哪个配置文件使用此 pom 中定义的属性 ${project.basedir} 当前项目所在的目录,因为子项目继承了父项目所以子项目也会生效这句语句 -->
        <directory>${project.basedir}/src/main/resources</directory>
<!--        开启过滤表示上面是资源文件 -->
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>
  • 将父工程的自定义标签中主机地址改为 127.0.0.1 查看是否能改回来

image_2023-03-07-14-14-25

  • 查看 jar 包的 properties 文件

image_2023-03-07-14-15-26

  • 这样所有的子项目都能读取到配置文件了,没有局限性了

# 其它属性

属性分类引用格式示例
自定义属性$$
内置属性$$ $
Setting 属性$$
Java 系统属性$$
环境变量属性$$