我已经搜索并挠头几个小时了,但我无法让它工作。
我有一个带有 Gradle 的多模块项目,目前有两个模块:BFF(使用 Spring Boot)和一个从数据库中获取一些数据的模块(受 this post 启发)。结构看起来像这样:
├── bff
| ├── build.gradle.kts
| ├── src
| └── main
| ├── java
| | └── some.package.bff.controller
| | └── CustomerController
| └── resources
| └── application.yaml
├── customer-service
| ├── build.gradle.kts
| ├── src
| └── main
| ├── java
| | ├── some.package.customer.config
| | | ├── CustomerServiceConfiguration
| | | └── CustomerServiceConfigurationProperties
| | └── ...
| └── resources
| └── customer-service-properties.yaml
├── build.gradle.kts
└── settings.gradle.kts
CustomerServiceConfigurationProperties
是一个简单的 ConfigurationProperties
类。 CustomerServiceConfiguration
类用作将模块“导入”到 BFF 的 Spring 上下文中的一种方式,受 this post 的启发:
@Configuration
@EnableConfigurationProperties(CustomerServiceConfigurationProperties.class)
@PropertySource("classpath:customer-service-properties.yaml") //This fails
@ComponentScan(basePackages = {
"some.package.customer"
})
public class CustomerServiceConfiguration {
private static final Logger log = LoggerFactory.getLogger(CustomerServiceConfiguration.class);
private final CustomerServiceConfigurationProperties configurationProperties;
public CustomerServiceConfiguration(final CustomerServiceConfigurationProperties configurationProperties) {
this.configurationProperties = configurationProperties;
}
@Bean
SomeBean someBean() {
...
}
}
添加由 CustomerServiceConfigurationProperties
映射到 BFF 的 application.yaml
的属性按预期工作,并被选取以配置客户服务模块。 不起作用是为 customer-service
模块添加不应由 bff
修改的配置属性,例如休眠设置。我打算使用 customer-service-properties.yaml
来做到这一点。当我尝试使用有问题的行运行应用程序时,Spring 抱怨在类路径中找不到该文件。果然,在查看生成的 jar 时,它不存在。将它添加到 bff
的资源中是可行的,但这显然不是我想要的。
我是否需要找到将 customer-service-properties.yaml
文件添加到类路径的方法?我不应该使用类路径而是使用其他东西吗?我只是想做一些我不应该做的事情吗?有没有其他方法可以解决这个问题?
注意:我对 Gradle 还是很陌生,如果这完全相关的话。
如果我需要添加或指定其他内容,请告诉我。任何帮助或指示将不胜感激。谢谢!