为了账号安全,请及时绑定邮箱和手机立即绑定

spring boot多个模块如何继承application.properties

spring boot多个模块如何继承application.properties

鸿蒙传说 2023-08-23 11:46:06
我使用 Spring Boot 多个模块,我想从 Parent 继承 application.properties 。我有父模块:spring-ecommere-demo 和子模块:模型、核心和安全性。在父模块中,我放置了一些 jdbc 配置,如下所示:application.properties(父模块)spring.datasource.url=jdbc:mysql://localhost:3306/BaoTrungspring.datasource.username=rootspring.datasource.password=123456spring.jpa.show-sql=true在子模块安全性中,我的具体配置如下所示:application-security.properties(安全模块)app.jwtSecret= JWTSuperSecretKeyapp.jwtExpirationInMs = 604800000安全模块中 Spring Boot 应用程序的配置如下所示:@SpringBootApplication(scanBasePackages = "springecommeredemo")@PropertySources({        @PropertySource("application-security.properties")})但是当我运行它时,它抛出异常描述:无法配置数据源:未指定“url”属性,并且无法配置嵌入数据源。原因:未能确定合适的驱动程序类行动:请考虑以下事项:如果您想要嵌入式数据库(H2、HSQL 或 Derby),请将其放在类路径中。如果您有要从特定配置文件加载的数据库设置,您可能需要激活它(配置文件开发当前处于活动状态)。这意味着子模块安全性无法从父项目继承属性。如何从父模块继承所有属性。因为我使用相同的数据库,所以我不想在我的项目中配置重复的 jdbc。我想继承共同的属性。请帮忙
查看完整描述

4 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您需要Properties在 Spring 中添加多个可访问的注释,我添加了重复的注释,因为@PropertySource之前Java 8如果您需要使用同一注释的多个实例,则必须将它们包装在容器注释中。有了Java 8,这就不再需要了,可以得到更清晰、更易读的代码。


@SpringBootApplication(scanBasePackages = "springecommeredemo")

@PropertySource("application.properties")

@PropertySource("application-security.properties")


查看完整回答
反对 回复 2023-08-23
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

我使用 Spring Boot 2.5。假设我有一个公共模块和一个使用公共模块的应用程序模块。如果我想访问公共模块属性文件中定义的所有属性,那么我会将以下内容添加到应用程序模块属性文件的顶部。

spring.config.import=classpath:common-module.properties

您可以为该“公共模块”属性文件指定任何名称。


查看完整回答
反对 回复 2023-08-23
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

所以我正在构建与你相同的框架,这对我有用

classpath将前缀 this添加到@PropertySource注释中

@PropertySource("classpath:application-security.properties") // application-security on root

另外,
如果属性位于包内,只需执行以下操作:

@PropertySource("classpath:/com/my/project/application.properties") // com.my.project package

如果您想要多个来源,请务必执行相同的操作:

@PropertySources({
    @PropertySource("classpath:xxx.properties"),
    @PropertySource("classpath:/com/my/project/xxx.properties")
})


查看完整回答
反对 回复 2023-08-23
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

仅创建子模块: example :server-config 并运行它。在子模块:安全性中添加服务器配置作为依赖项并运行它。它对我有用


查看完整回答
反对 回复 2023-08-23
  • 4 回答
  • 0 关注
  • 387 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信