本项目用的还是springboot
项目,咱们直接上代码
一:首先看下nacos中需要动态获取的属性
二:把需要动态读取的配置类中的属性整理一个实体类
mport lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@ConfigurationProperties(prefix = "spring.datasource")
@Component
public class DataSourceEmpty {
private String driverClassName;
private String password;
private String url;
private String username;
}
1:注意nacos中配置的是spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver 。spring.datasource.driver-class-name用 - 横岗连接的属性。实体类中则对应驼峰即可。
2:prefix 是 spring.datasource。driverClassName 是driver-class-name。主要就是利用@ConfigurationProperties这个注解实现。
3:springcloud则是用@RefreshScope注解来实现的。
三:主体代码
@RestController
@RequestMapping("/nacos")
public class nacosController {
@Autowired
private DataSourceEmpty dataSourceEmpty;
/**
* 结合DataSourceEmpty类已经实现动态获取
* @return
*/
@GetMapping("getNacosValue1")
public String getValue1(){
return "getNacosValue1:"+dataSourceEmpty.getUsername()
+","+dataSourceEmpty.getPassword()+","
+dataSourceEmpty.getDriverClassName()+","
+dataSourceEmpty.getUrl();
//输出:getNacosValue1:hlr2261226HLR
}
输出:
getNacosValue1:root,hlr2261226HLR,com.mysql.cj.jdbc.Driver,jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=UTC