springcloud alibaba(一)nacos下载及简单使用

运行版本

  • springboot: 2.2.8.RELEASE
  • springcloud: Hoxton.SR12
  • nacos: 2.1.0.RELEASE
  • springcloudalibaba: 2.1.0.RELEASE

下载及网站

  1. 百度网盘:链接:https://pan.baidu.com/s/11_xm6IfAMn2496_LykxP2Q
    提取码:naco
  2. Nacos官网:https://nacos.io/zh-cn/docs/quick-start.html
  3. Nacos下载-github:https://github.com/alibaba/nacos/releases
  4. gitee 2.1:https://gitee.com/grey-hat/nacos/tree/2.1.0
  5. Spring Cloud Alibaba官网:https://spring-cloud-alibaba-group.github.io/github-pages/2021/en-us/index.html#_introduction

Alibaba版本的出现是因为Eureka停更,它对SpringCloud进行了实现升级(中心和外围右上角),并集成了阿里云的其他服务(最外围左下角)

在这里插入图片描述

nacos启动

将bin目录下的 startup.cmd 文件中 28行的 cluster 修改为 standalone后启动

rem set MODE="cluster" Cluster mode
rem "standalone" standalone mode
set MODE="standalone"

点击启动即可
在这里插入图片描述
访问路径
在这里插入图片描述

快速体验

pom

父工程

 <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.2.8.RELEASE</spring-boot.version>
        <latest.version>2.1.0.RELEASE</latest.version>
        <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
    </properties>

<dependencyManagement>
        <dependencies>
            <!--            nacos 依赖 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>${latest.version}</version>
            </dependency>
            <!--            springcloud alibaba 依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
            </dependency>
            <!--            springcloud 依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--            springboot -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

子工程

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--        nacos 注册中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--        lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--        nacos config -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>
    </dependencies>

nacos配置

  1. 登录

    在这里插入图片描述

  2. 发布 (发布完毕后需要重启nacos)

    在这里插入图片描述

    在这里插入图片描述

  3. 配置 bootstrap.yaml注意:名字必须是这个

    spring:
      application:
        name: nacos-provider
      profiles:
        active: dev # 开发环境
      cloud:
        nacos:
          discovery:
            server-addr: 192.168.0.145:8848
          config:
            server-addr: 192.168.0.145:8848
            file-extension: yaml
    
    # 配置公式
    # ${spring.application.name}-${spring.profile.active}.${spring.cloud.nacos.config.file-extension}
    
  4. 编写 NacosTestController

    @RestController
    public class NacosTestController {
    
        @Value("${pursue.name}")
        private String name;
    
        @GetMapping("/echo")
        public String echo() {
            return "获取nacos中的信息 ->  " + name ;
        }
    
  5. 访问网站测试

    在这里插入图片描述

nacos 动态刷新

Nacos Confg 支持标准 Spring Cloud @RefreshScope特性,即应用订阅某个 Nacos 配置后,当配置内容变化时,Refresh Scope Beans 中的绑定配置的属性将有条件的更新。

所谓的条件是指 Bean 必须:

  1. 必须条件:Bean 的声明类必须标注 @RefreshScope

  2. 二选一条件:

    • 属性(非 static 字段)标注 @Value

      •   @RefreshScope
          public class NacosTestController {
          
              @Value("${pursue.name}")
              private String name;
          }
        
    • @ConfigurationPropertiesBean

      • @ConfigurationProperties注解到普通类然后通过@EnableConfigurationProperties定义为bean

      •   <dependency>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-configuration-processor</artifactId>
              <optional>true</optional>
          </dependency>
        
      •   @ConfigurationProperties(perfix = "pursue")
          @Component
          @Data
          @AllArgsConstructor
          @NoArgsConstructor
          public class Pursue(){
              // 与nacos中定义的属性名需要一致
              private String name;
          }
          
          // ------------------------------
          
          @EnableConfigurationProperties({Pursue.class})
          public class NacosTestController {
           	   @Autowired
              private Pursue pursue;
          
              @GetMapping("/echo")
              public String echo() {
                  return "获取nacos中的信息 ->  " + pursue.getName() ;
              }
          }
        
  3. 更新 nacos 服务端中的数据即可

    •   pursue:
            name: autoUpt nacos
      

    在这里插入图片描述

注解实现原理解析:https://blog.csdn.net/andy_zhang2007/article/details/88236454

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值