1.下载nacos
下载链接
2.新建数据库
解压nacos并打开conf文件夹打开sql文件复制里面内容到数据执行
3.修改nacos启动文件,nacos2.0默认启动模式是集群,需要改成单机模式
Java使用Nacos
创建项目
v
添加依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.22</version>
</dependency>
<!-- TK MAPPER-->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
添加配置类
package com.demo.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
/**
* @program: springboot-nacos-demo
* @description:
* @author: syske
* @create: 2021-02-28 11:33
*/
@Configuration
@RefreshScope
public class DruidDataSourceWrapper extends DruidDataSource implements InitializingBean {
@Override
public String getUrl() {
return url;
}
@Override
public String getUsername() {
return username;
}
@Override
public void setUsername(String username) {
this.username = username;
}
@Override
public String getPassword() {
return password;
}
@Override
public void setPassword(String password) {
this.password = password;
}
@Override
public String getDriverClassName() {
return driverClassName;
}
@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;
private String passwordCallbackClassName;
public void setMaxWait(int maxWait) {
this.maxWait = maxWait;
}
public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) {
this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
}
public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) {
this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
}
@Override
public void setUrl(String url) {
this.url = url;
}
@Override
public void setDriverClassName(String driverClassName) {
this.driverClassName = driverClassName;
}
// @Override
// public void setConnectionProperties(String connectionProperties) {
// this.connectionProperties = connectionProperties;
// }
@Override
public void setPasswordCallbackClassName(String passwordCallbackClassName) {
this.passwordCallbackClassName = passwordCallbackClassName;
}
@Override
public void afterPropertiesSet() throws Exception {
// 如果未找到前缀“spring.datasource.druid”JDBC属性,将使用“Spring.DataSource”前缀JDBC属性。
super.setUrl(url);
super.setUsername(username);
super.setPassword(password);
super.setDriverClassName(driverClassName);
super.setInitialSize(initialSize);
super.setMinIdle(minIdle);
super.setMaxActive(maxActive);
super.setMaxWait(maxWait);
super.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
super.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
super.setValidationQuery(validationQuery);
super.setTestWhileIdle(testWhileIdle);
super.setTestOnBorrow(testOnBorrow);
super.setTestOnReturn(testOnReturn);
super.setPoolPreparedStatements(poolPreparedStatements);
super.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
// super.setConnectionProperties(connectionProperties);
super.setDbType(dbType);
super.setPasswordCallbackClassName(passwordCallbackClassName);
}
}
修改yml
spring:
application:
name: nacos2
cloud:
nacos:
config:
file-extension: yaml
server-addr: 127.0.0.1:8848
启动类加注解
@EnableDiscoveryClient
@EnableFeignClients
调用别的微服务接口
PS:
Nacos动态刷新数据源时,数据源信息不正确的话,就无法继续修改信息,可以写一个接口修改数据源在修改Nacos数据源