代码演示只改动注解@ConfigurationProperties(prefix = "spring.datasource")换为从nacos获取数据源
时间: 2024-03-23 22:41:14 浏览: 58
好的,以下是一个简单的演示代码,旨在展示如何将数据源的配置信息从`application.yml`中改为从Nacos配置中心获取:
首先,需要在`pom.xml`文件中引入相应的Nacos客户端依赖:
```xml
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${nacos.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-spring-context</artifactId>
<version>${nacos.version}</version>
</dependency>
```
然后,在`application.yml`中删除数据源的配置信息,改为在Nacos配置中心中配置:
```yaml
# application.yml
spring:
application:
name: demo
nacos:
config:
server-addr: localhost:8848
namespace: 123456
group: DEFAULT_GROUP
discovery:
server-addr: localhost:8848
# 在 Nacos 配置中心中添加以下配置信息
data-source:
url: jdbc:mysql://localhost:3306/demo
username: root
password: 123456
```
接下来,在应用程序中,使用`@NacosPropertySource`注解指定Nacos配置中心的地址和配置信息的命名空间,再使用`@NacosConfigurationProperties`注解获取数据源的配置信息并注入到应用程序中:
```java
import com.alibaba.nacos.api.config.annotation.NacosPropertySource;
import com.alibaba.nacos.spring.context.annotation.config.NacosConfigurationProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import javax.sql.DataSource;
@SpringBootApplication
@NacosPropertySource(dataId = "demo.yml", autoRefreshed = true)
@NacosConfigurationProperties(prefix = "data-source")
public class DemoApplication {
private final DataSource dataSource;
public DemoApplication(DataSource dataSource) {
this.dataSource = dataSource;
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
// ...
}
```
这样,就可以将数据源的配置信息从`application.yml`中改为从Nacos配置中心获取了。需要注意的是,为了正确获取Nacos中的配置信息,需要在`@NacosPropertySource`注解中指定Nacos配置中心的地址和命名空间,并且在`@NacosConfigurationProperties`注解中指定配置信息的前缀。此外,还需要在`application.yml`中添加Nacos配置中心的地址和命名空间的配置信息。
阅读全文