springboot项目将@ConfigurationProperties(prefix = "spring.datasource")改为从nacos取值
时间: 2024-03-23 19:39:42 浏览: 51
可以通过以下步骤将 `@ConfigurationProperties(prefix = "spring.datasource")` 改为从 Nacos 中取值:
1. 在 Nacos 中创建一个配置,比如命名为 `datasource.properties`,并将数据源的配置信息以键值对的形式填入该配置中。
2. 在 Spring Boot 项目的 `pom.xml` 文件中添加 Nacos 的依赖:
```xml
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
```
3. 在 Spring Boot 项目的 `bootstrap.yml`(或 `bootstrap.properties`)文件中添加 Nacos 的配置,如下所示:
```yaml
spring:
cloud:
nacos:
config:
server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848} # Nacos 服务器地址
namespace: ${NACOS_NAMESPACE:} # Nacos 命名空间,可选
group: ${NACOS_GROUP:DEFAULT_GROUP} # Nacos 配置分组
enabled: true # 启用 Nacos 配置
```
4. 在数据源的配置类中,使用 `@NacosPropertySource` 注解指定要从哪个 Nacos 配置中读取数据源的配置信息,如下所示:
```java
@Configuration
@NacosPropertySource(dataId = "datasource.properties", groupId = "DEFAULT_GROUP", autoRefreshed = true)
public class DataSourceConfig {
// ...
}
```
5. 修改数据源的配置类,将 `@ConfigurationProperties(prefix = "spring.datasource")` 改为 `@NacosConfigurationProperties(prefix = "spring.datasource")`,如下所示:
```java
@Configuration
@NacosPropertySource(dataId = "datasource.properties", groupId = "DEFAULT_GROUP", autoRefreshed = true)
public class DataSourceConfig {
@Bean
@NacosConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return new DruidDataSource();
}
}
```
这样,数据源的配置信息就从 Nacos 中读取了。注意,如果 Nacos 中的配置信息发生变化,Spring Boot 会自动更新数据源的配置信息。
阅读全文