springboot + shardingjdbc 项目,项目启动时候使用@bean 方式注入数据源,但是数据源的连接信息又存在数据库中,读取不到怎么办?如何解决
时间: 2024-03-05 13:50:20 浏览: 19
可以将数据源的连接信息存储在配置文件中,然后在使用@Bean注入数据源的时候,通过@Value注解获取配置文件中的连接信息来创建数据源。
具体实现可以参考以下步骤:
1. 在配置文件中添加连接信息
```properties
# 数据库连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
```
2. 在代码中使用@Value注解获取连接信息
```java
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@Value("${spring.datasource.driver-class-name}")
private String driverClassName;
```
3. 使用获取到的连接信息创建数据源
```java
@Bean
public DataSource dataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driverClassName);
return dataSource;
}
```
这样就可以在项目启动时通过@Bean注入数据源,并且从配置文件中获取连接信息来创建数据源了。