Spring Cloud Edgware新特性之七:可选的EnableDiscoveryClient注解

简介: 最近家里事情比较多,有20天没有更新博客了。12月31日早上,老婆突然肚子疼,然后就去医院了。在经过难熬的28个小时之后,老婆早产生了个小姑娘。之后就一直奔波在家、医院,直至今日。

最近家里事情比较多,有20天没有更新博客了。12月31日早上,老婆突然肚子疼,然后就去医院了。在经过难熬的28个小时之后,老婆早产生了个小姑娘。之后就一直奔波在家、医院,直至今日。昨晚凌晨,姑娘突然大便出血,又住院了……南京几个医院的新生儿科都不让陪护,只有周一周四才能看到。

姑娘是个非常乖的宝宝,在家不哭不闹,饿了就吃,吃了就睡,睡醒就拉,拉完接着吃。送到医院给医生洗了个澡就大哭不止。但是没有办法,有病总得治,只能听医生的了。从生老大开始,我就开始跟医院有矛盾。如果把中间的细节描绘一下,大致可以成书。绝对狗血,并且比《Spring Cloud与Docker微服务架构实战》那本精彩,评分高。

话说我家的娃们跟过年大致都有点关系——

  • 老大农历初二生的
  • 老二元旦生的

希望他们的人生像过年一样无忧无虑、吃穿不愁。原本我想写富足,但是富足往往是父母赐给的,以我目前的实力,给他们许诺“富足”还很遥远。

言归正传,回到Spring Cloud——

相信熟悉Spring Cloud的读者对注解@EnableDiscoveryClient@EnableEurekaClient 并不陌生。简单回顾一下——

要想将一个微服务注册到Eureka Server(或其他服务发现组件,例如Zookeeper、Consul等),只需:

  • 添加Eureka Client(或其他服务发现组件的Client)依赖:

    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    
  • 写注解:在启动类上添加注解@EnableDiscoveryClient@EnableEurekaClient

    @EnableDiscoveryClient
    @SpringBootApplication
    public class ProviderUserApplication {
      public static void main(String[] args) {
        SpringApplication.run(ProviderUserApplication.class, args);
      }
    }
    
  • 写配置:

    spring:
      application:
        name: microservice-provider-user
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:8761/eureka/
    

    从Spring Cloud Edgware开始,@EnableDiscoveryClient@EnableEurekaClient 可省略。只需加上相关依赖,并进行相应配置,即可将微服务注册到服务发现组件上。

分析

文章写到这里,Edgware新特性已经结束了。

但Spring Cloud为什么要这么设计/改进呢?

这是由于在实际项目中,我们可能希望实现“不同环境不同配置”的效果——例如:在开发环境中,不注册到Eureka Server上,而是服务提供者、服务消费者直连,便于调测;在生产环境中,我们又希望能够享受服务发现的优势——服务消费者无需知道服务提供者的绝对地址。为适应该需求,Spring Cloud Commons进行了改进,相关Issue:https://github.com/spring-cloud/spring-cloud-commons/issues/218

如不想将服务注册到Eureka Server,只需设置spring.cloud.service-registry.auto-registration.enabled=false ,或@EnableDiscoveryClient(autoRegister = false) 即可。

目录
相关文章
|
10天前
|
XML Java 数据格式
SpringBoot入门(8) - 开发中还有哪些常用注解
SpringBoot入门(8) - 开发中还有哪些常用注解
29 0
|
29天前
|
Java Spring
在使用Spring的`@Value`注解注入属性值时,有一些特殊字符需要注意
【10月更文挑战第9天】在使用Spring的`@Value`注解注入属性值时,需注意一些特殊字符的正确处理方法,包括空格、引号、反斜杠、新行、制表符、逗号、大括号、$、百分号及其他特殊字符。通过适当包裹或转义,确保这些字符能被正确解析和注入。
|
17天前
|
XML JSON Java
SpringBoot必须掌握的常用注解!
SpringBoot必须掌握的常用注解!
41 4
SpringBoot必须掌握的常用注解!
|
19天前
|
存储 缓存 Java
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
Spring缓存注解【@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig】使用及注意事项
58 2
|
19天前
|
JSON Java 数据库
SpringBoot项目使用AOP及自定义注解保存操作日志
SpringBoot项目使用AOP及自定义注解保存操作日志
34 1
|
14天前
|
存储 安全 Java
springboot当中ConfigurationProperties注解作用跟数据库存入有啥区别
`@ConfigurationProperties`注解和数据库存储配置信息各有优劣,适用于不同的应用场景。`@ConfigurationProperties`提供了类型安全和模块化的配置管理方式,适合静态和简单配置。而数据库存储配置信息提供了动态更新和集中管理的能力,适合需要频繁变化和集中管理的配置需求。在实际项目中,可以根据具体需求选择合适的配置管理方式,或者结合使用这两种方式,实现灵活高效的配置管理。
10 0
|
26天前
|
存储 Java 数据管理
强大!用 @Audited 注解增强 Spring Boot 应用,打造健壮的数据审计功能
本文深入介绍了如何在Spring Boot应用中使用`@Audited`注解和`spring-data-envers`实现数据审计功能,涵盖从添加依赖、配置实体类到查询审计数据的具体步骤,助力开发人员构建更加透明、合规的应用系统。
|
2月前
|
SpringCloudAlibaba API 开发者
新版-SpringCloud+SpringCloud Alibaba
新版-SpringCloud+SpringCloud Alibaba
|
3月前
|
资源调度 Java 调度
Spring Cloud Alibaba 集成分布式定时任务调度功能
定时任务在企业应用中至关重要,常用于异步数据处理、自动化运维等场景。在单体应用中,利用Java的`java.util.Timer`或Spring的`@Scheduled`即可轻松实现。然而,进入微服务架构后,任务可能因多节点并发执行而重复。Spring Cloud Alibaba为此发布了Scheduling模块,提供轻量级、高可用的分布式定时任务解决方案,支持防重复执行、分片运行等功能,并可通过`spring-cloud-starter-alibaba-schedulerx`快速集成。用户可选择基于阿里云SchedulerX托管服务或采用本地开源方案(如ShedLock)
126 1
|
1月前
|
JSON SpringCloudAlibaba Java
Springcloud Alibaba + jdk17+nacos 项目实践
本文基于 `Springcloud Alibaba + JDK17 + Nacos2.x` 介绍了一个微服务项目的搭建过程,包括项目依赖、配置文件、开发实践中的新特性(如文本块、NPE增强、模式匹配)以及常见的问题和解决方案。通过本文,读者可以了解如何高效地搭建和开发微服务项目,并解决一些常见的开发难题。项目代码已上传至 Gitee,欢迎交流学习。
129 1
Springcloud Alibaba + jdk17+nacos 项目实践