JAVA代码获取另一个moudle下的application-druid.yml的数据库连接信息
时间: 2023-09-23 13:13:09 浏览: 112
假设你的项目是一个多模块的Maven项目,其中一个模块包含了`application-druid.yml`文件,而你需要在另一个模块的Java代码中获取该文件中的数据库连接信息。
可以使用Spring Boot的`YamlPropertySourceLoader`类来加载YAML文件并转换为Java对象,然后再从Java对象中获取所需的属性值。
以下是示例代码:
```java
import org.springframework.boot.env.YamlPropertySourceLoader;
import org.springframework.core.env.PropertySource;
import org.springframework.core.io.ClassPathResource;
import java.io.IOException;
import java.util.Map;
public class DatabaseConfig {
private String url;
private String username;
private String password;
public DatabaseConfig() throws IOException {
YamlPropertySourceLoader loader = new YamlPropertySourceLoader();
ClassPathResource resource = new ClassPathResource("application-druid.yml");
PropertySource<?> propertySource = loader.load("database", resource);
Map<String, Object> properties = (Map<String, Object>) propertySource.getSource();
Map<String, Object> dataSourceProperties = (Map<String, Object>) properties.get("spring.datasource");
this.url = (String) dataSourceProperties.get("url");
this.username = (String) dataSourceProperties.get("username");
this.password = (String) dataSourceProperties.get("password");
}
public String getUrl() {
return url;
}
public String getUsername() {
return username;
}
public String getPassword() {
return password;
}
}
```
在上述代码中,我们首先使用`YamlPropertySourceLoader`加载`application-druid.yml`文件,然后从加载后的属性源中获取`spring.datasource`的属性值,最后将属性值分别赋值给`url`、`username`和`password`变量。
你可以在需要使用数据库连接信息的地方实例化`DatabaseConfig`类,然后通过调用其`getUrl()`、`getUsername()`和`getPassword()`方法获取相应的属性值。
阅读全文