微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Gradle Spring Boot自定义配置

我有一个使用mysql数据库来保存信息的应用程序.我想创建一个使用嵌入式数据库(mariaDB4j)的应用程序版本,并将其作为服务添加到我们的CI环境中,因此当我们通过端到端测试启动此嵌入式版本时,QA团队获得了清理数据库.

我在网上看了很多这个,看起来像gradle配置是要走的路.我发现的最接近的是:

sourceSets {
    qaci {
        java {
            srcDir 'src/qa/java'
        }
        compileClasspath += sourceSets.main.runtimeClasspath
        compileClasspath += sourceSets.main.resources
    }
}

configurations {
    qaciCompile.extendsFrom compile
}

bootRepackage {
    customConfiguration = myCustomConfig
}

不幸的是,bootRepack替换了bootRepackage.我正在使用gradle spring boot插件2.0.1.RELEASE,当我尝试使用bootJar.customConfiguration时,我收到一条错误消息,指出这是一个未知属性.

此外,mariaDB4j需要配置类才能正常工作,我已将它包含在src / qa / java中并创建了一个新的源集以便添加它.

有谁知道如何告诉gradle spring boot插件使用自定义配置?

解决方法:

你有没有想过使用弹簧型材?

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-profiles.html

它允许您为少数配置文件(即开发,QA,生产)定义一组不同的值,bean或配置集,您可以使用它们来运行具有不同配置或不同库的应用程序.

@Configuration
@Profile("production")
public class ProductionConfiguration {}

此类将加载您在.properties或.yml文件中为该配置文件设置的所有值.

要运行应用程序,您可以传递要用作命令行参数的配置文件

--spring.profiles.active=dev

mariaDB的配置将在特定的配置文件下.

例如(如果您使用的是yml):

spring:
  profiles: QA
  datasource:
    url: jdbc:mariadb://qaserver:1234;databaseName=qaDatabase
    username: USER
    password: PASSWORD
    driverClassName: org.mariadb.jdbc.Driver
    //aditional mariadb properties, configs
spring:
  profiles: production
  datasource:
    url: jdbc:sqlserver://proddatabase:1433;databaseName=production
    username: USER
    password: PASSWORD
    driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver

属于其他配置文件的类和属性将不会被处理.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐