美文网首页
【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