gpt4 book ai didi

spring-data - 如何从属性文件将字符串数组设置为@EnableJpaRepositories

转载 作者:行者123 更新时间:2023-12-01 11:24:41 24 4
gpt4 key购买 nike

我有一个带有 @EnableJpaRepositories 的 jpa 配置文件注释。我将此注释值设置为 application.properties像这样的文件:

@EnableJpaRepositories("${jpa.repository.packages}")
public class JPAConfiguration {
....
}

这是我的 application.properties 文件:
jpa.repository.packages=com.epms.model

它完美无缺。但我想为 @EnableJpaRepositories 指定多个包。所以我将我的配置文件更改为:
jpa.repository.packages=com.epms.model,com.ecms.model

以及对此的配置文件:
@EnableJpaRepositories("#{'${jpa.repository.packages}'.split(',')}")
public class JPAConfiguration {
}

但它不起作用。任何的想法 ?我怎样才能在我的配置文件中做到这一点?

最佳答案

正如@amicoderozer 所问的那样,如果您的类共享一个公共(public)基础包,您只需指明该根包。

如果不是您的情况(尽管您是从配置文件加载或手动声明它们),问题(将有助于发布任何异常或运行时跟踪)可能是 split 的方式。使用方法。它返回一个数组,我猜生成的代码会是这样的:

@EnableJpaRepositories("jpa.repository.packages1","jpa.repository.packages2")

该代码无法编译。

从未在组件的注解中尝试过 Spring EL,但尽管如此,也许您应该指出 basePackages这边走:
@EnableJpaRepositories(basePackages = "#{'${jpa.repository.packages}'.split(',')}")

如果不起作用,我建议您先通过手动数组声明对其进行测试:
@EnableJpaRepositories(basePackages = { "com.epms.model","com.ecms.model" })

确保一切正常,然后再次尝试从配置文件中读取和解析。

更新:
经过一些阅读,我得出结论,不可能做你想做的事。 SpEL允许 in many places但是对于注释,只有 @Value 的文档和工作示例注解。

关于spring-data - 如何从属性文件将字符串数组设置为@EnableJpaRepositories,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38566710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com