我有一个带有@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 {
}
但它不工作.任何想法?我怎么能这样做在我的配置文件?
2条答案
按热度按时间cedebl8k1#
正如@amicoderozer所问的,如果你的类共享一个公共的基本包,你只需要指出那个根包。
如果不是你的情况(尽管你是从配置文件加载的或者你是手动声明的),也许问题(* 将有助于发布任何异常或运行时跟踪 *)是
split
方法的使用方式。它返回一个数组,我猜生成的代码将是这样的:这段代码无法编译。
从来没有在组件的annotation中尝试过Spring EL,但尽管如此,也许你应该这样指示basePackages:
如果不起作用,我建议你首先通过手动数组声明来测试它:
请确保所有工作都如您所期望的那样,然后再次尝试从配置文件阅读和解析。
**更新:**经过一些阅读,我得出结论,这是不可能的做你想要的。
SpEL
是允许的in many places,但对于注解,只有文档和工作示例与@Value
注解。eqoofvh92#
以下工程: