Nacos的学习-创新互联

Nacos的学习 1、下载地址

https://github.com/alibaba/nacos/releases/tag/2.1.1

成都创新互联服务项目包括泰和网站建设、泰和网站制作、泰和网页制作以及泰和网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,泰和网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到泰和省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

在这里插入图片描述

在bin目录中输入命令 startup.cmd -m standalone
在这里插入图片描述
输入localhost:8848/nacos
账号:nacos,密码:nacos

在这里插入图片描述

2、Spring与Nacos (1)新增一个配置

在这里插入图片描述

(2)导包
org.springframework.bootspring-boot-starter-parent2.3.12.RELEASEcom.yczNacos-study0.0.1-SNAPSHOTNacos-studyNacos-study8org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestcom.alibaba.nacosnacos-spring-context1.1.1
(3)配置
package com.ycz.nacosstudy.config;

import com.alibaba.nacos.api.annotation.NacosProperties;
import com.alibaba.nacos.spring.context.annotation.config.EnableNacosConfig;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.context.annotation.ComponentScan;

@ComponentScan("com.ycz.nacosstudy")
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
@NacosPropertySource(dataId = "test.properties" , autoRefreshed = true)
public class AppConfig {}
(4)service
package com.ycz.nacosstudy.service;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class UserService {@Value("${oracle.username}")
    private String username;

    @Value("${oracle.password}")
    private String password;

    public void test(){System.out.println(username);
        System.out.println(password);
    }


}
(5)测试
package com.ycz.nacosstudy;

import com.ycz.nacosstudy.config.AppConfig;
import com.ycz.nacosstudy.service.UserService;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Test {public static void main(String[] args) {AnnotationConfigApplicationContext annotationConfigApplicationContext =
                new AnnotationConfigApplicationContext(AppConfig.class);
        UserService userService =
                annotationConfigApplicationContext.getBean(UserService.class);
        userService.test();
    }
}
结果:

在这里插入图片描述

3、Springboot+Nacos (1)导包
org.springframework.bootspring-boot-starter-parent2.3.12.RELEASEcom.yczNacos-study0.0.1-SNAPSHOTNacos-studyNacos-study8org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestcom.alibaba.bootnacos-config-spring-boot-starter0.2.12
(2)配置
nacos.config.context-path=127.0.0.1:8848
nacos.config.data-id=test.properties
nacos.config.auto-refresh=true
nacos.config.bootstrap.enable=true
(3)controller
package com.ycz.nacosstudy.Controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {@Value("${oracle.username}")
    private String username;

    @Value("${oracle.password}")
    private String password;

    @GetMapping("test")
    public String test(){return username + password;
    }

}
(4)测试 http://localhost:8080/test

在这里插入图片描述

现在如果nacos中配置修改的话,再刷新页面还是旧的
所以现在要改一下注解

(5)将@Value改成@NacosValue
package com.ycz.nacosstudy.Controller;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {@NacosValue(value = "${oracle.username}" , autoRefreshed = true)
    private String username;

    @NacosValue(value =  "${oracle.password}" , autoRefreshed = true)
    private String password;

    @GetMapping("test")
    public String test(){return username + password;
    }

}

再测试,是可以的

4、springcloud+nacos (1)导包
org.springframework.bootspring-boot-starter-parent2.3.12.RELEASEcom.yczNacos-study0.0.1-SNAPSHOTNacos-studyNacos-study8org.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-testtestcom.alibaba.cloudspring-cloud-starter-alibaba-nacos-config2.2.8.RELEASE
(2)配置
spring.application.name=test.properties
spring.cloud.nacos.config.context-path=127.0.0.1:8848
spring.cloud.nacos.config.refresh-enabled=true
(3)controller
package com.ycz.nacosstudy.Controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RefreshScope //自动刷新注解
public class UserController {@Value(value = "${oracle.username}")
    private String username;

    @Value(value =  "${oracle.password}")
    private String password;

    @GetMapping("test")
    public String test(){return username + password;
    }

}
(4)测试

在这里插入图片描述

(5)我们可以配置一个公共的配置类,这样就不用在每个类中都加@RefreshScope
package com.ycz.nacosstudy.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;

@RefreshScope
@Component
public class CommonConfig {@Value(value = "${oracle.username}")
    private String username;

    @Value(value =  "${oracle.password}")
    private String password;

    public String getUsername() {return username;
    }

    public void setUsername(String username) {this.username = username;
    }

    public String getPassword() {return password;
    }

    public void setPassword(String password) {this.password = password;
    }
}
package com.ycz.nacosstudy.Controller;

import com.ycz.nacosstudy.config.CommonConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController

public class UserController {@Autowired
    private CommonConfig config;

    @GetMapping("test")
    public String test(){return config.getUsername() + config.getPassword();
    }

}

测试:在这里插入图片描述

一般我们需要配置多套环境

在这里插入图片描述
在这里插入图片描述

加上spring.profiles.active=prod就可以了

测试

在这里插入图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


名称栏目:Nacos的学习-创新互联
分享地址:http://ybzwz.com/article/dceieh.html