jdk1.8 springboot+mybatis框架下,写一个工具类,获取另一个moudle下的application-druid.yml的数据库连接信息
时间: 2024-03-11 20:49:25 浏览: 79
在Spring Boot + MyBatis框架下,可以使用以下代码获取另一个moudle下的`application-druid.yml`文件的数据库连接信息:
```java
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.util.StringUtils;
import org.yaml.snakeyaml.Yaml;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
public class DatabaseUtils {
public static Map<String, String> getDatabaseProperties() throws IOException {
Map<String, String> properties = new HashMap<>();
Resource resource = new ClassPathResource("/application-druid.yml");
InputStream inputStream = resource.getInputStream();
Yaml yaml = new Yaml();
Map<String, Object> yamlMap = yaml.load(inputStream);
Map<String, Object> datasourceMap = (Map<String, Object>) yamlMap.get("spring.datasource");
if (datasourceMap != null) {
String url = (String) datasourceMap.get("url");
String username = (String) datasourceMap.get("username");
String password = (String) datasourceMap.get("password");
if (!StringUtils.isEmpty(url)) {
properties.put("url", url);
}
if (!StringUtils.isEmpty(username)) {
properties.put("username", username);
}
if (!StringUtils.isEmpty(password)) {
properties.put("password", password);
}
}
return properties;
}
}
```
上述代码中,`ClassPathResource`用于获取`application-druid.yml`文件的输入流,然后使用`Yaml`库解析该文件,并将解析出来的数据库连接信息存储在一个`Map`中返回。在调用该方法时,只需要在调用方中引入该工具类,并调用`getDatabaseProperties`方法即可。
需要注意的是,如果`application-druid.yml`文件位于另一个module中,需要将该module加入到当前项目的依赖中,否则编译时会找不到该文件。
阅读全文