美文网首页
【SpringBoot】application(.propert

【SpringBoot】application(.propert

作者: eliteTyc | 来源:发表于2020-06-29 13:20 被阅读0次

前言:项目分模块,新建主工程,主工程pom.xml自定义属性,并配置一些jar包的版本信息,在主工程下新建子模块,子模块为真正的业务实现,子模块pom.xml继承自主工程,添加依赖时可以不用写版本号,现在要解决的问题是子模块中的application.properties或application.yml(yaml)配置文件来读取主工程的pom.xml文件中的自定义属性

1.主工程自定义属性:主工程为springcloud-main

  • 这里拿数据库连接url作为自定义属性
<properties>
<!--   设置<![CDATA[]]防止链接转义错误-->
      <mysql.url><![CDATA[jdbc:mysql://localhost:3306/test]]></mysql.url>
</properties>

2.新建子模块mysql-demo

image.png
  • 项目检查,这一步很重要!!!
  1. 查看子模块的pom.xml的parent标签是否为主工程(这里我更新idea后,在主工程下new Module但是不会继承主工程,所以我自己改一下)
<parent>
        <groupId>com.elitetyc</groupId>
        <artifactId>springcloud-main</artifactId>
        <version>0.0.1-SNAPSHOT</version>
  </parent>

2.检查主工程中是否添加了modules标签(还是因为更新idea后,虽然我是在主工程下新建的模块,但是没有像以前一样自动添加module到主工程,自己添加一下,否则子工程读取不到主pom的属性)

<modules>
        <module>mysql-demo</module>
</modules>

3.子模块配置文件获取主pom配置

  • 相同操作,无论使用.properties还是.yml都需要在子工程pom配置如下
<resources>
      <resource>
           <directory>src/main/resources/</directory>
           <filtering>true</filtering>
      </resource>
 </resources>
  • 使用application.properties,直接使用${属性名}
spring.datasource.url=${mysql.url}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.username=root
spring.datasource.password=12345
  • 使用application.yml
    • 方式1,直接使用${属性名}
spring:
  datasource:
    url: ${mysql.url}
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 12345
  • 方式2,使用'@属性名获取@',注意有单引号或者双引号,不加引号的话,可能会出现错误:
Exception in thread "main" while scanning for the next token
found character '@' that cannot start any token. (Do not use @ for indentation)
 in 'reader', line 4, column 11:
spring:
  datasource:
    url: '@mysql.url@'
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123456

相关文章

网友评论

      本文标题:【SpringBoot】application(.propert

      本文链接:https://www.haomeiwen.com/subject/qvsofktx.html