我正在处理一个多模块 spring boot 项目,遇到了与 application.properties 文件中保存的属性有关的问题。从头开始:
目前我有两个模块:数据和网络。项目结构如下所示:
parent project
|_ data
|_ web
模块在父 pom 文件中正确命名
<modules>
<module>data</module>
<module>web</module>
</modules>
数据模块负责连接到数据库并定义用于数据访问的存储库。它在它的 application.properties 文件中有一些属性,用于保存到数据库的连接详细信息
spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.username=XXXXXXXX
spring.datasource.password=XXXXXXXXX
在 web 模块中,我想从数据库中读取数据并将其放入 jsp。所以我在 web-module 的 pom 中添加了一个对 data-module 的依赖:
<dependency>
<groupId>de.my.fancy.groupId</groupId>
<artifactId>data</artifactId>
<version>${project.version}</version>
</dependency>
启动网络模块时,我收到此错误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
Reason: Failed to determine a suitable driver class
我想我可能必须从数据模块中注入我的配置类,所以我像这样更改了 web 模块的起始类:
@SpringBootApplication(exclude= {SecurityAutoConfiguration.class}, scanBasePackageClasses= {JPAConfig.class})
public class WebApplication {
@Autowired
JPAConfig config;
public static void main(String[] args) {
SpringApplication.run(WebApplication.class, args);
}
}
因此,似乎我无法从数据模块中的 application.properties 中获取要在 web 模块中注入的配置对象中使用的属性。我可以在这里做什么才能在 web 模块中使用属性?
相关分类