alibaba/spring-cloud-alibaba
45.1
Weak · 24 September 2026
32k
lines of production code
Java
primary language
4
measurements over time
What this system is
This system is a collection of Spring Cloud Alibaba starters and example applications that integrate Java microservices with Alibaba Cloud infrastructure components. It provides libraries for service discovery and configuration via Nacos, distributed transaction management with Seata, and traffic control and circuit breaking using Sentinel. Additionally, it includes support for asynchronous messaging through RocketMQ, distributed scheduling, and heterogeneous service integration via a Sidecar pattern.
How it got here
2017–2020 — Spring Boot 3 migration and example expansion
71 changes.
The project underwent a comprehensive migration to Spring Boot 3.x and Java 17+, updating core starters for Nacos, Sentinel, Seata, and RocketMQ to use modern auto-configuration and Jackson 3. This period also focused on extensive documentation and example creation, providing reference implementations for service discovery, distributed transactions, and reactive patterns across the ecosystem.
2021–2022 — Spring Boot 3 migration and RocketMQ enhancements
39 changes.
This period focused on migrating starters to the Spring Boot 3 auto-configuration mechanism and adding GraalVM native-image support. It also introduced significant features for the RocketMQ binder, including pollable consumers, explicit acknowledgment, and new message conversion capabilities, alongside enhanced Nacos load balancing and circuit breaker configurations.
2023–2026 — distributed scheduling and native image support
16 changes.
This period focused on introducing distributed scheduling capabilities via a new SchedulerX starter and ShedLock integration, alongside comprehensive examples for Nacos, Sentinel, and OpenFeign. Significant work was also dedicated to enhancing native image compatibility by adding AOT runtime hints for Sentinel and RocketMQ, and improving IPv6 support in Nacos discovery.
Features
Add Consul integration for the Sidecar starter
The sidecar starter now includes support for registering and discovering services via Consul. This change introduces a new auto-configuration class that wires up Consul-specific registration and discovery clients, allowing sidecar instances to register their health checks and metadata with a Consul agent and enabling other services to discover them through the standard Spring Cloud discovery client interface.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/consul · high confidence
Add IPv6 address detection utilities for Nacos discovery
This change introduces new utility classes (InetIPv6Utils and UtilIPv6AutoConfiguration) within the Nacos discovery starter to handle IPv6 address selection. The new code provides logic to find the first valid non-loopback, non-link-local IPv6 address across network interfaces, respecting existing configuration properties for ignored interfaces and preferred networks. This enables the Nacos discovery client to correctly identify and register IPv6 addresses in dual-stack environments.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/util · high confidence
Add Nacos Discovery and Spring Cloud Config client example
A new example module has been added that demonstrates integrating Nacos service discovery with Spring Cloud Config. The application registers itself as a discovery client and imports configuration from a remote Config Server, exposing a REST endpoint that returns the fetched configuration value.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-client-example · high confidence
Add Nacos Gateway Discovery example configuration
A new example application has been added to demonstrate how to use Spring Cloud Gateway with Nacos for service discovery. The configuration sets up a gateway service listening on port 18085, connects to a Nacos server at 127.0.0.1:8848 using default credentials, and defines a route that matches requests to /nacos/\\, strips the prefix, and forwards traffic to the 'service-gateway-provider' service via load balancing.
spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/src/main/resources · high confidence
Add Node.js sidecar example for heterogeneous service integration
The sidecar examples module now includes a Node.js service example (node-service.js) that demonstrates how to integrate non-Java microservices with Spring Cloud Alibaba. The example provides a simple HTTP server on port 8060 with health check endpoints, accompanied by updated English and Chinese README documentation explaining how to configure the Sidecar to register and proxy requests to this heterogeneous service via Nacos.
spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples · high confidence
Add RocketMQ binder health indicator
The RocketMQ Stream binder now exposes a health check via the Spring Boot Actuator. A new \RocketMQBinderHealthIndicator\ class reports the binder's status as UP if all instrumentations are up, OUT\_OF\_SERVICE if all are out of service, or DOWN otherwise, including any start exceptions in the health details. The actuator package is also marked with JSpecify null-marking annotations.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/actuator · high confidence
Add RocketMQ delay message consumption example
A new example application has been added to demonstrate how to send and consume delayed messages using RocketMQ. The application uses Spring Cloud Stream's StreamBridge to produce messages with specific delay time levels and includes a consumer that logs the received messages along with the calculated delay duration.
spring-cloud-alibaba-examples/rocketmq-example/rocketmq-delay-consume-example/src/main/java · high confidence
Add RocketMQ transactional messaging example
A new example project demonstrating RocketMQ transactional messaging has been added to the Spring Cloud Alibaba examples. This includes a Spring Boot application that sends transactional messages via a StreamBridge producer and consumes them, along with a custom TransactionListener implementation to handle local transaction execution and state checking. The example is configured via application.yml to connect to a local RocketMQ broker and demonstrates the producer-consumer pattern for reliable message delivery.
spring-cloud-alibaba-examples/rocketmq-example/rocketmq-tx-example · high confidence
Add SQL-based message filtering example for RocketMQ
The common module now includes a new example demonstrating RocketMQ's SQL-based message filtering capabilities. This is implemented via a new \SimpleMsg\ POJO and an \application.yml\ configuration that sets up a Stream function definition with a consumer subscribed to messages matching specific SQL conditions (e.g., color and price attributes).
spring-cloud-alibaba-examples/rocketmq-example/rocketmq-example-common · high confidence
Add Seata distributed transaction example for the business service
The business-service example now includes the main application class, a REST controller, and an order model to demonstrate Seata-based distributed transactions. The application is configured with Feign clients for the storage and order services, along with LoadBalancer clients, while the controller exposes endpoints that use the @GlobalTransactional annotation to coordinate transactions across these services via both RestTemplate and Feign.
spring-cloud-alibaba-examples/seata-example/business-service/src/main/java, spring-cloud-alibaba-examples/seata-example/order-service/src/main/java, spring-cloud-alibaba-examples/seata-example/storage-service/src/main/java/com/alibaba/cloud/examples/controller · high confidence
Add Sentinel actuator endpoint and health indicator
This change introduces a new Spring Boot actuator endpoint (id 'sentinel') and a health indicator for the Sentinel module. The endpoint exposes current Sentinel configuration, runtime metrics (such as log directory, console server list, and heartbeat settings), and active rules (flow, degrade, system, authority, and param-flow rules) via a read operation. The health indicator checks the connectivity of the configured Sentinel Dashboard via heartbeat messages and validates the status of registered data sources by attempting to load their configurations, reporting UP, UNKNOWN, or DOWN statuses accordingly.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/endpoint · high confidence
Add Sentinel reactive circuit breaker support
This change introduces a new reactive circuit breaker implementation for Sentinel, allowing users to apply circuit-breaking rules to reactive (non-blocking) applications. The diff adds \ReactiveSentinelCircuitBreaker\, \ReactiveSentinelCircuitBreakerFactory\, and \ReactiveSentinelCircuitBreakerAutoConfiguration\ to the \spring-cloud-circuitbreaker-sentinel\ module. These components integrate with Spring Cloud's \ReactiveCircuitBreaker\ SPI, enabling reactive streams (Flux/Mono) to be wrapped with Sentinel's degrade rules via \SentinelReactorTransformer\. This complements the existing synchronous \SentinelCircuitBreaker\ implementation, providing parity for reactive workloads.
spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/src/main/java/com/alibaba/cloud/circuitbreaker/sentinel · high confidence
Add Spring Cloud Alibaba Scheduling example project
Added a new example project demonstrating distributed timing task scheduling using Spring Scheduling. The example supports two integration modes: a distributed lock solution based on the open-source ShedLock library (requiring a MySQL database) and Alibaba Cloud's SchedulerX service. It includes configuration files for both modes, a sample application with scheduled jobs, and documentation explaining how to run and verify distributed execution.
spring-cloud-alibaba-examples/spring-cloud-scheduling-example · high confidence
Add Spring Cloud Gateway Sentinel example with API rules and block handling
The Sentinel example for Spring Cloud Gateway now includes Java source files that demonstrate how to configure custom block request handling and expose Sentinel rule management endpoints. MySCGConfiguration registers a BlockRequestHandler that returns HTTP 444 with a JSON body when requests are blocked, while RulesWebFluxController provides REST endpoints (/api, /gateway, /flow) to retrieve current API definitions, gateway flow rules, and standard flow rules. The application entry point is defined in SentinelSpringCloudGatewayApplication.
spring-cloud-alibaba-examples/sentinel-example/sentinel-spring-cloud-gateway-example/src/main/java · high confidence
Add comprehensive RocketMQ example application
A new comprehensive example has been added to demonstrate Spring Cloud Alibaba RocketMQ integration. The example includes a main application class that defines a reactive producer generating User objects, a processor that transforms these messages, and a consumer that logs the final output, along with a User model class to support the data flow.
spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/src/main/java, spring-cloud-alibaba-examples/rocketmq-example/rocketmq-comprehensive-example/src/main/java · high confidence
Add configuration for Spring Cloud LoadBalancer and Sentinel in Nacos consumer example
The Nacos discovery consumer example now includes configuration files to enable Spring Cloud LoadBalancer (replacing Ribbon) and integrate with Sentinel for flow control and degradation. The application.properties file configures the consumer service, disables Ribbon, sets up zone-preference load balancing, and defines local file-based data sources for Sentinel flow and degradation rules, which are provided in the new flowrule.json and degraderule.json files.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-sclb-example/src/main/resources · high confidence
Add distributed scheduling support via SchedulerX and ShedLock
The starter now supports distributed scheduling by introducing two new modes selectable via the \spring.cloud.scheduling.distributed-mode\ property. When set to \schedulerx\, the module auto-configures the Alibaba SchedulerX worker, allowing users to define jobs via \spring.cloud.scheduling.schedulerx.jobs\ or by syncing existing Spring \@Scheduled\ methods to the SchedulerX platform. When set to \shedlock\, it integrates the ShedLock library to provide database-backed distributed locking for scheduled tasks, automatically initializing the required MySQL schema. This change adds a comprehensive set of configuration properties, auto-configuration classes, and synchronization services to enable these distributed capabilities.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-schedulerx · high confidence
Add reactive discovery consumer example configuration
A new application.properties file has been added for the reactive discovery consumer example, configuring the service name as 'service-consumer-reactive' and setting the server port to 18083. The configuration connects to a Nacos server at 127.0.0.1:8848 using 'nacos' credentials and explicitly disables Ribbon load balancer support in favor of Spring Cloud LoadBalancer.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-reactivediscovery-consumer-example/src/main/resources · high confidence
Added AOT runtime hints for RocketMQ consumer and provider properties
The RocketMQ Stream binder now includes AOT (Ahead-of-Time) runtime hints to ensure proper reflection support for native image builds. Specifically, the new \RocketMQConsumerPropertiesHints\ and \RocketMQSpecificPropertiesProviderHints\ classes register the necessary constructors and methods (such as \setMessageModel\, \getPush\, \setSubscription\, \getConsumer\, and \setProducer\) for reflection access. This change ensures that these properties classes and their providers are correctly handled during native compilation, preventing runtime reflection errors in GraalVM native images.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/aot · high confidence
Added AOT runtime hints for SentinelProtectInterceptor
The Sentinel starter now includes AOT (Ahead-of-Time) compilation support for the SentinelProtectInterceptor. A new RuntimeHintsRegistrar ensures that the interceptor's constructor is registered for reflection, allowing it to function correctly in native images or other AOT environments where reflection is restricted by default.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/aot · high confidence
Added Eclipse IDE configuration and code style settings
The project now includes a standard set of Eclipse IDE configuration files to ensure consistent code formatting and style across development environments. This adds \org.eclipse.jdt.core.prefs\ and \org.eclipse.jdt.ui.prefs\ defining Java compiler compliance at level 17, source/target platform settings, and specific code cleanup conventions (such as organizing imports, removing unused private members, and using blocks). It also introduces \eclipse-code-formatter.xml\ with the "Spring Boot Java Conventions" profile for consistent indentation and brace placement, and \checkstyle-suppressions.xml\ to suppress specific style checks for example and test modules.
eclipse · high confidence
Added GraalVM native-image configuration and Spring Boot 3 auto-configuration metadata for Seata
The Seata starter now includes native-image configuration files (native-image.properties, proxy-config.json, reflect-config.json, resource-config.json) to support GraalVM compilation, ensuring proper initialization and reflection handling for Seata and its dependencies. Additionally, the starter has migrated to the Spring Boot 3 auto-configuration mechanism by introducing the org.springframework.boot.autoconfigure.AutoConfiguration.imports file, which registers the Seata auto-configuration classes including the new WebFlux support.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/resources · high confidence
Added Nacos Config example application entry point
The Nacos Config example now includes a standard Spring Boot application entry point class (NacosConfigApplication) to bootstrap the configuration service integration.
spring-cloud-alibaba-examples/nacos-example/nacos-config-example/src/main/java/com/alibaba/cloud/examples · high confidence
Added Nacos Gateway Discovery example application
A new example application, GatewayApplication, has been added to demonstrate Spring Cloud Gateway integration with Nacos for service discovery. This entry point class enables discovery client functionality and configures a specific load balancer client for the 'service-gateway-provider' service, allowing users to see how to wire up gateway routing with Nacos-based service registration and discovery.
spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-discovery-example/src/main/java, spring-cloud-alibaba-examples/rocketmq-example/rocketmq-pollable-consume-example/src/main/java · high confidence
Added Nacos configuration properties model
The example application now includes a new \NacosConfigInfo\ component that binds to the \spring.cloud.nacos.config\ prefix, exposing server address, data ID prefix, group, and namespace settings for easy access within the example.
spring-cloud-alibaba-examples/nacos-example/nacos-config-example/src/main/java/com/alibaba/cloud/examples/model · high confidence
Added RocketMQ broadcast consumer examples
New example applications for RocketMQ broadcast messaging have been added, specifically \rocketmq-broadcast-consumer1-example\ and \rocketmq-broadcast-consumer2-example\. These examples demonstrate how to configure Spring Cloud Stream with the RocketMQ binder to receive messages using the \BROADCASTING\ message model, allowing multiple consumers in the same group to receive all messages sent to the \broadcast\ destination.
spring-cloud-alibaba-examples/rocketmq-example/rocketmq-broadcast-example/rocketmq-broadcast-consumer1-example, spring-cloud-alibaba-examples/rocketmq-example/rocketmq-broadcast-example/rocketmq-broadcast-consumer2-example · high confidence
Added Seata example database schema and setup documentation
The seata-example location now includes the \all.sql\ script and updated English/Chinese \readme\ files to guide users in setting up the required database tables (\undo\_log\, \global\_table\, \branch\_table\, \lock\_table\, \distributed\_lock\) and business tables (\storage\_tbl\, \order\_tbl\, \account\_tbl\) for the Seata distributed transaction example.
spring-cloud-alibaba-examples/seata-example · high confidence
Added Spring Boot 3 auto-configuration support for Sentinel
The Sentinel starter now includes \spring.factories\ and \additional-spring-configuration-metadata.json\ to enable automatic configuration via Spring Boot's standard auto-configuration mechanism. This registers the \SentinelApplicationContextInitializer\ and exposes configuration properties (such as \spring.cloud.sentinel.enabled\, transport settings, and Feign integration) for IDE support and externalized configuration.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/resources/META-INF · high confidence
Added Spring Cloud Alibaba Sidecar examples for Consul and Nacos
New example modules have been introduced for the Spring Cloud Alibaba Sidecar feature, providing reference implementations for both Consul and Nacos service discovery backends. The Consul example demonstrates how to configure the sidecar to proxy a heterogeneous microservice (node-service) running on port 8060, including specific settings for health checks and load balancing. The Nacos example provides a parallel setup, allowing users to see how the sidecar integration works with Nacos as the registry.
spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-consul-example, spring-cloud-alibaba-examples/spring-cloud-alibaba-sidecar-examples/spring-cloud-alibaba-sidecar-nacos-example/src/main/java · high confidence
Added custom error page for Sentinel core example
The Sentinel core example now includes a custom error page (errorPage.html) that displays a simple 'This is error page.' message when an error occurs, replacing the default error handling behavior for this example application.
spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/resources/templates · high confidence
Added native-image and Spring Boot 3 AOT configuration for RocketMQ binder
The RocketMQ stream starter now includes support for GraalVM native images and Spring Boot 3 Ahead-of-Time (AOT) compilation. This is achieved by adding native-image configuration files (reflect-config.json and native-image.properties) to ensure required RocketMQ classes are available at build time, registering AOT runtime hints via aot.factories, and updating the auto-configuration registration to use the Spring Boot 3 org.springframework.boot.autoconfigure.AutoConfiguration.imports file instead of the legacy spring.factories.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/resources · high confidence
Added validation scripts for Nacos discovery consumer examples
New shell scripts have been added to the nacos-discovery-consumer-example and nacos-discovery-consumer-sclb-example directories to help users validate the examples. These scripts repeatedly call various endpoints (such as /test, /index, /sleep, /echo-rest/resttemplate, and Feign-specific routes like /divide-feign) to verify that the consumer services are correctly registered and responding.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example · high confidence
Automatic Seata XID propagation for RestTemplate
The Seata starter now automatically injects a request interceptor into all Spring RestTemplate beans, ensuring that the current Seata transaction ID (XID) is propagated to outgoing HTTP requests. This allows distributed transactions to seamlessly span across REST calls without requiring manual header management in application code.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/rest · high confidence
Automatic Seata XID propagation for reactive WebClient requests
The Seata starter now includes auto-configuration for Spring WebFlux's WebClient. When a distributed transaction is active, the new SeataWebClientFilter automatically injects the current Seata XID into outgoing HTTP headers, ensuring that downstream services invoked via WebClient are aware of the transaction context without requiring manual header management.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/webclient · high confidence
Config server metadata propagation and discovery-based config client support
The Nacos discovery starter now includes a new auto-configuration that automatically propagates the Spring Cloud Config server's prefix to Nacos service metadata as 'configPath' when both the config server and Nacos discovery are present, ensuring consistent configuration paths. Additionally, a new bootstrap configuration enables config clients to locate the config server via Nacos discovery when 'spring.cloud.config.discovery.enabled' is set, importing the necessary Nacos discovery and IPv6 utility auto-configurations.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/discovery/configclient · high confidence
Initial Nacos Discovery Provider configuration
The nacos-discovery-provider-example now includes an application.properties file that configures the service provider to register with a Nacos server at 127.0.0.1:8848. The configuration enables service discovery, sets the application name to 'service-provider', and exposes management endpoints for health checks. It also includes commented-out options to restrict instance registration to IPv4 or IPv6 addresses.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/resources · high confidence
Initial project scaffolding and documentation
The repository has been initialized with the core project structure, including the Maven Wrapper (version 3.3.4) for consistent builds, standard configuration files (.editorconfig, .gitignore, .codecov.yml), and a license check configuration. Comprehensive documentation has been added, including the main README.md and README-zh.md with setup instructions for Maven and Gradle, a Code of Conduct, and English and Chinese Roadmap documents outlining current components (Sentinel, Nacos, RocketMQ, Seata) and future directions like Spring Cloud Alibaba AI and Proxyless Mesh.
(repo-wide) · high confidence
Integrated example now supports Docker Compose and Kubernetes deployment
The integrated-example now includes configuration files, scripts, and documentation to deploy the demo application using Docker Compose or Kubernetes (Helm). This adds a \config-init\ directory containing SQL scripts for database initialization, YAML configuration files for microservices (gateway, storage, account, order, provider, consumer), and a shell script to push these configurations to Nacos. The \docker-compose\ directory provides environment and service definitions for running the full stack (Nacos, MySQL, RocketMQ, Seata) and the application services locally. Documentation in both English and Chinese guides users through local, Docker Compose, and Kubernetes deployment steps, enabling easier experimentation with the distributed transaction and traffic-shaving scenarios.
spring-cloud-alibaba-examples/integrated-example · high confidence
Introduction of centralized RocketMQ binder constants and null-safety annotations
The Spring Cloud Stream RocketMQ binder now exposes a new \RocketMQConst\ class that centralizes configuration defaults and header mappings. This includes a default NameServer address (\127.0.0.1:9876\), a default consumer group named \anonymous\, and a dedicated \Headers\ inner class defining standard message properties (such as keys, tags, topic, and message ID) as Spring message headers. Additionally, the \constant\ package is now annotated with \@NullMarked\ via JSpecify, enabling null-safety checks for code within this package.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/constant · high confidence
Nacos Discovery health indicator added
A new NacosDiscoveryHealthIndicator has been introduced in the actuate health package to expose the Nacos discovery service status via Spring Boot's health endpoint. The indicator checks the server status through NacosServiceManager (preferred) or the legacy NamingService, reporting UP, DOWN, or UNKNOWN states to users monitoring service health.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/discovery/actuate · high confidence
Nacos Discovery starter configuration metadata and auto-configuration registration
The Nacos Discovery starter now explicitly registers its configuration properties and auto-configuration classes. An additional-spring-configuration-metadata.json file has been added to define metadata for properties such as server address, service name, instance enablement, ephemeral status, watch/heartbeat toggles, authentication credentials, and the new load balancer integration flag (spring.cloud.loadbalancer.nacos.enabled). Additionally, the spring.factories file registers the NacosDiscoveryRefreshEnvironmentPostProcessor and the NacosDiscoveryClientConfigServiceBootstrapConfiguration, ensuring these components are automatically wired during application startup.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/resources, spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/resources/META-INF · high confidence
Nacos-specific load balancing with custom algorithms and IPv6 support
The Nacos discovery starter now includes a dedicated NacosLoadBalancer that enables weighted instance selection, cross-cluster routing, and custom load balancing algorithms via the new LoadBalancerAlgorithm and ServiceInstanceFilter interfaces. It also adds native dual-stack (IPv4/IPv6) support by preferring IPv6 addresses when available and filtering instances accordingly. The feature is opt-in via the spring.cloud.loadbalancer.nacos.enabled property and is configured through LoadBalancerNacosAutoConfiguration and NacosLoadBalancerClientConfiguration, which register the default algorithm and disable caching to ensure immediate effect of instance metadata changes.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/loadbalancer · high confidence
New Feign integration example for Sentinel circuit breaking
The sentinel-circuitbreaker-example now includes a complete demonstration of integrating Spring Cloud OpenFeign with Sentinel. This addition provides the main application entry point, REST controllers to trigger requests, and Feign client interfaces (OrderClient, UserClient) configured with specific fallback classes (OrderClientFallBack, UserClientFallBack) to handle failures, illustrating how to implement circuit breaking for Feign-based service calls.
spring-cloud-alibaba-examples/sentinel-example/sentinel-circuitbreaker-example/src/main/java · high confidence
New Nacos Discovery Actuator Endpoint
A new actuator endpoint with ID 'nacosdiscovery' has been added to the Nacos Discovery starter, allowing users to inspect discovery configuration and subscribed service instances via a read operation. This is enabled by the new NacosDiscoveryEndpointAutoConfiguration, which registers the endpoint bean when Spring Boot Actuate is present and Nacos discovery is enabled. Additionally, the auto-configuration includes a health indicator for Nacos discovery that is disabled by default and only activated when the property spring.cloud.nacos.discovery.health-indicator.enabled is set to true.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/endpoint · high confidence
New Nacos Gateway Provider example configuration
A new example application has been added to demonstrate how to configure a Spring Cloud Gateway provider with Nacos. The included \application.properties\ file sets up the service on port 18086, registers it with Nacos discovery at \127.0.0.1:8848\ using default credentials, and exposes all management endpoints for monitoring.
spring-cloud-alibaba-examples/nacos-example/nacos-gateway-example/nacos-gateway-provider-example/src/main/resources · high confidence
New Nacos configuration example components
Added four new Java example classes to the Nacos config example module: BeanAutoRefreshConfigExample for dynamic bean refresh, ConfigListenerExample for configuration change listeners, DockingInterfaceExample for direct Nacos API interactions (get, publish, remove, and listen to configs), and ValueAnnotationExample for retrieving configuration via @Value annotations with refresh scope.
spring-cloud-alibaba-examples/nacos-example/nacos-config-example/src/main/java/com/alibaba/cloud/examples/example · high confidence
New RocketMQ Bus example application
Added a new example application demonstrating Spring Cloud Bus with RocketMQ, including the main application class, a User domain model, and a custom remote application event for publishing and listening to user events across services.
spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/java · high confidence
New RocketMQ broadcast producer example using StreamBridge
Added a new example application demonstrating how to send broadcast messages via RocketMQ using Spring Cloud Stream's StreamBridge API. The producer sends 100 messages with specific keys and origin message IDs to a 'broadcast' destination, configured to connect to a RocketMQ broker at localhost:9876.
spring-cloud-alibaba-examples/rocketmq-example/rocketmq-broadcast-example/rocketmq-broadcast-producer-example · high confidence
New RocketMQ message conversion and header mapping support classes
The RocketMQ stream binder now includes a new \support\ package containing core infrastructure for message conversion and header handling. This adds \RocketMQMessageConverterSupport\ to handle the translation between Spring Messaging and RocketMQ native messages, including logic to parse flag and delay-level headers. It also introduces a header mapping framework with \RocketMQHeaderMapper\, \AbstractRocketMQHeaderMapper\, and \JacksonRocketMQHeaderMapper\ to serialize and deserialize complex message headers using Jackson, along with a \RocketMQBeanContainerCache\ and \RocketMQConfigBeanPostProcessor\ to manage custom bean registration.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/support · high confidence
New RocketMQ message converter with Jackson and FastJSON support
A new RocketMQMessageConverter has been introduced to handle message serialization and deserialization for the RocketMQ binder. This converter automatically detects the presence of Jackson and FastJSON libraries at runtime and configures a composite converter chain accordingly, ensuring that messages are correctly converted to and from objects using the available JSON libraries. The converter is designed to support all classes and integrates with the Spring Messaging framework.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/convert · high confidence
New SQL-based message filtering example for RocketMQ
A new example application has been added to demonstrate how to use RocketMQ's SQL expression feature for message filtering within the Spring Cloud Stream framework. The example configures a consumer to subscribe to messages using an SQL-like expression (\sql:(color in ('red1', 'red2', 'red4') and price\>3)\) to filter messages based on custom headers, and uses \StreamBridge\ to send messages with these headers for consumption.
spring-cloud-alibaba-examples/rocketmq-example/rocketmq-sql-consume-example · high confidence
New Seata account-service example implementation
The account-service example now includes a new Spring Boot application structure with an AccountController that exposes a REST endpoint for deducting account balances, a DatabaseConfiguration that initializes the account table, and an AccountApplication entry point. This provides a concrete example of how to integrate Seata distributed transaction management with a Spring Boot application using JDBC.
spring-cloud-alibaba-examples/seata-example/account-service/src/main/java · high confidence
New Sentinel Feign integration with fallback support
The Sentinel starter now includes a new Feign integration package that wraps OpenFeign clients with Sentinel rate-limiting and circuit-breaking. This adds a custom Feign builder and invocation handler that intercepts calls to register resources in Sentinel, and explicitly supports both standard fallback classes and FallbackFactory instances for error handling.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/feign · high confidence
New Sentinel RestTemplate example with code-based rule configuration
The sentinel-resttemplate-example now provides a complete reference implementation for integrating Sentinel with Spring's RestTemplate. The example includes a RestTemplate bean configured with @SentinelRestTemplate and @LoadBalanced, a TestController demonstrating usage against httpbin.org endpoints, and a SentinelRulesConfiguration that programmatically defines flow and degrade rules via @PostConstruct. Additionally, JSON rule files (flowrule.json, degraderule.json) are included to illustrate alternative file-based configuration, and a native-image test verifies the @SentinelRestTemplate annotation loads correctly in GraalVM native builds.
spring-cloud-alibaba-examples/sentinel-example/sentinel-resttemplate-example · high confidence
New Sentinel WebFlux example with reactive circuit breaking
The sentinel-webflux-example now includes Java source files demonstrating how to integrate Sentinel with Spring WebFlux. The example provides a controller exposing endpoints for Mono and Flux streams protected by SentinelReactorTransformer, as well as endpoints using ReactiveCircuitBreakerFactory for slow and error-based circuit breaking. A configuration class defines custom block request handlers and degrade rules for these reactive resources.
spring-cloud-alibaba-examples/sentinel-example/sentinel-webflux-example/src/main/java · high confidence
New Sentinel core example application with circuit breaker and flow control demos
The sentinel-core-example module now includes a complete demo application (SentinelCoreApplication) that showcases Spring Cloud Alibaba Sentinel integration. The example demonstrates custom exception handling via ExceptionUtil for RestTemplate blocking, JSON-based flow rule conversion using JsonFlowRuleListConverter, and circuit breaker configuration through SentinelCircuitBreakerFactory with degrade rules. The TestController provides endpoints illustrating @SentinelResource annotation usage, RestTemplate integration with custom block handlers, and circuit breaker execution with fallback logic. WebMvcConfiguration adds error page routing support for the example.
spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/src/main/java · high confidence
New Sentinel-protected OpenFeign example
The sentinel-openfeign-example now provides a complete demonstration of integrating Spring Cloud Alibaba Sentinel with OpenFeign. The example includes a Feign client that calls httpbin.org, configured with a fallback factory to handle failures gracefully. It demonstrates both flow control (limiting QPS on the /get endpoint) and circuit breaking (degrading on 500 errors and slow responses) via programmatic rule configuration, with corresponding JSON rule files also provided as an alternative configuration method.
spring-cloud-alibaba-examples/sentinel-example/sentinel-openfeign-example · high confidence
New Spring Cloud Gateway integration for Sentinel
This change introduces the Spring Cloud Gateway (SCG) adapter for Alibaba Sentinel within the \spring-cloud-alibaba-sentinel-gateway\ starter. It adds \SentinelSCGAutoConfiguration\ to automatically register the \SentinelGatewayFilter\ and \SentinelGatewayBlockExceptionHandler\ beans, enabling request filtering and block handling for SCG applications. Configuration is managed via \SentinelGatewayProperties\, allowing users to customize the filter execution order and define fallback behaviors (such as custom response bodies or redirects) when requests are blocked by Sentinel rules.
spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/scg · high confidence
New Spring Cloud LoadBalancer consumer example for Nacos
Added a new example application (nacos-discovery-consumer-sclb-example) that demonstrates service consumption using Spring Cloud LoadBalancer instead of legacy components. The example includes a custom RandomLoadBalancer implementation, Feign client configuration with fallback support, and RestTemplate setup with URL cleaning for Sentinel integration.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-sclb-example/src/main/java · high confidence
New StorageApplication entry point for Seata storage service example
The storage-service example now includes a dedicated StorageApplication class that serves as the Spring Boot entry point, enabling users to run the Seata distributed transaction storage service example directly.
spring-cloud-alibaba-examples/seata-example/storage-service/src/main/java/com/alibaba/cloud/examples · high confidence
New annotation-driven Nacos configuration binding and refresh
The Nacos config starter now supports binding configuration directly to beans via the new @NacosConfig annotation, which can be applied to classes, fields, or methods to inject values from Nacos data IDs and groups. The module introduces a comprehensive annotation-based listener ecosystem (@NacosConfigListener, @NacosConfigKeysListener, @NacosConfigRefreshableListener) allowing applications to react to configuration changes with fine-grained control, including support for specific key prefixes and array-indexed keys in YAML/properties. This is powered by a new NacosAnnotationProcessor that acts as a BeanPostProcessor to wire these annotations, alongside utility classes for JSON/YAML parsing and a dedicated YAML change parser (ScaYamlConfigChangeParser) to handle flattened key updates.
spring-cloud-alibaba-starters/spring-alibaba-nacos-config · high confidence
New example demonstrating Nacos discovery with Spring Cloud Config Server
Added a new example module that combines Nacos service discovery with the Spring Cloud Config Server. This example runs a Config Server application on port 7070, registers it with Nacos at 127.0.0.1:8848 using default credentials, and is configured to fetch configuration from a specific GitHub repository.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-spring-cloud-config-server-example · high confidence
New integrated example frontend with common result models
The integrated example now includes a new frontend module that provides web UIs for demonstrating order processing, RocketMQ peak-shaving, and Sentinel rate-limiting scenarios. This change introduces a shared common module containing a standard Result wrapper, a ResultEnum for status codes, and a BusinessException class, which the frontend controller and Thymeleaf templates use to interact with the gateway service.
spring-cloud-alibaba-examples/integrated-example/integrated-common, spring-cloud-alibaba-examples/integrated-example/integrated-frontend · high confidence
New integrated gateway example with Sentinel and CORS support
A new integrated gateway example has been added to demonstrate Spring Cloud Gateway integration with Alibaba Sentinel for rate limiting and CORS handling. The gateway application registers a Sentinel global filter and exception handler, initializes a default rate limit rule (5 requests per second for the 'praiseItemSentinel' resource), and configures a custom block handler that returns a JSON response when requests are throttled. Additionally, it enables CORS with wildcard origins and headers, caching preflight responses for one hour, and connects to Nacos for configuration and service discovery.
spring-cloud-alibaba-examples/integrated-example/integrated-gateway · high confidence
New integrated-account, integrated-order, and integrated-storage example services
The integrated-example area now includes three new microservice implementations: integrated-account, integrated-order, and integrated-storage. The integrated-account service exposes REST endpoints to reduce a user's balance and query remaining funds, backed by MyBatis mappers and Seata transactional support. The integrated-order service provides an order-creation endpoint that orchestrates distributed transactions via Seata's @GlobalTransactional, calling the integrated-storage and integrated-account services through Feign clients to reduce stock and deduct balance before persisting the order. The integrated-storage service offers endpoints to reduce product stock and check remaining quantities, also using MyBatis and Seata. All three services are configured with Nacos for service discovery and configuration, and each registers with the Seata default transaction service group.
spring-cloud-alibaba-examples/integrated-example/integrated-account, spring-cloud-alibaba-examples/integrated-example/integrated-order, spring-cloud-alibaba-examples/integrated-example/integrated-storage, spring-cloud-alibaba-examples/integrated-example/integrated-praise-consumer, spring-cloud-alibaba-examples/integrated-example/integrated-praise-provider · high confidence
New pollable RocketMQ message source with explicit acknowledgment handling
The pull-based inbound binder now includes a new \RocketMQMessageSource\ that acts as a pollable message source, allowing applications to explicitly pull messages from RocketMQ topics. This change introduces a dedicated acknowledgment mechanism via \RocketMQAckCallback\, which supports explicit control over message lifecycle (accept, reject, or requeue) rather than relying solely on automatic commit. A default error handler (\DefaultErrorAcknowledgeHandler\) is provided to manage consumption failures by requeuing messages, preventing message queue blocking when errors occur. This enables more robust error handling and manual offset management for pollable consumers.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/integration/inbound/pull · high confidence
New reactive Nacos discovery consumer example
Added a new example application demonstrating reactive service discovery with Nacos. This example includes a Spring Boot application configured with load balancer clients, a reactive REST controller that uses ReactiveDiscoveryClient to list service instances and WebClient to call them, and a configuration class to set up a load-balanced WebClient builder.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-reactivediscovery-consumer-example/src/main/java · high confidence
New test-support module for integration testing infrastructure
A new \spring-cloud-alibaba-test-support\ module has been added to provide shared utilities for integration tests. This includes a \ContainerStarter\ utility to manage Testcontainers for Nacos (v1.4.2), RocketMQ (v4.9.2), Sentinel, and Seata, along with a \SpringCloudAlibaba\ JUnit 5 extension that orchestrates Docker Compose environments for tests. The module also introduces annotations like \HasDockerAndItEnabled\ to conditionally skip tests when Docker is unavailable, and helper classes for timeouts and network utilities.
spring-cloud-alibaba-tests/spring-cloud-alibaba-test-support · high confidence
Per-client circuit breaker rules and dynamic refresh for Feign clients
Sentinel circuit breaker rules can now be configured individually for each Feign client (and its methods) via the \feign.sentinel\ properties, rather than applying a single global rule. The system automatically resolves circuit breaker names per client/method and applies the corresponding degrade rules. Additionally, when configuration changes are detected (e.g., from a config center), the circuit breaker rules are dynamically refreshed without requiring an application restart, ensuring that the latest per-client rules are active.
spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/src/main/java/com/alibaba/cloud/circuitbreaker/sentinel/feign · high confidence
RocketMQ Bus message converter auto-configuration
The RocketMQ Bus starter now includes an auto-configuration class that registers a CompositeMessageConverter bean for RocketMQ. This ensures that message conversion is properly set up for the bus functionality, addressing issue \#2742. The configuration is conditional, only applying if a bean with the default name is not already present, allowing users to provide custom converters if needed.
spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/src/main/java/com/alibaba/cloud/bus/rocketmq/autoconfigurate · high confidence
RocketMQ binder configuration properties and provisioning infrastructure introduced
The RocketMQ Stream binder now exposes a structured set of configuration properties and provisioning logic. Users can configure common connection settings (such as name server, namespace, TLS, and trace options) via \RocketMQCommonProperties\, while consumer-specific behaviors (like message model, subscription, and pull thresholds) are managed through \RocketMQConsumerProperties\ and producer-specific behaviors (like timeouts, retries, and compression) via \RocketMQProducerProperties\. These are aggregated in \RocketMQExtendedBindingProperties\ and \RocketMQSpecificPropertiesProvider\ to allow per-binding customization. Additionally, the \RocketMQTopicProvisioner\ now handles destination provisioning with topic validation, and a \PartitionMessageQueueSelector\ enables partition-aware message routing based on the Spring Cloud Stream partition header.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/properties · high confidence
RocketMQ binder now supports anonymous consumer groups
The RocketMQ message channel binder has been updated to allow consumers to operate without an explicit group name. If a consumer group is not configured, the binder automatically generates an anonymous group name derived from the destination name, enabling simpler setup for anonymous consumption scenarios. This change also includes stricter validation to ensure a group is explicitly provided when using Dead Letter Queue (DLQ) topics, as required for proper DLQ destination naming.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq · high confidence
Seata XID propagation for Feign and WebFlux
The starter now automatically propagates the Seata transaction ID (XID) in reactive (WebFlux) and Feign-based microservice calls. A new \SeataWebFilter\ binds the XID from incoming HTTP headers into Seata's \RootContext\ for reactive requests and cleans it up afterward, while \SeataFeignRequestInterceptor\ injects the current XID into outgoing Feign request headers. Additionally, \SeataFeignBuilderBeanPostProcessor\ disables Feign's default retry logic to prevent duplicate transaction attempts during retries.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/feign · high confidence
Servlet-based Seata XID propagation via new HandlerInterceptor
The starter now automatically propagates Seata transaction IDs (XID) for servlet-based web applications by registering a new \SeataHandlerInterceptor\. This interceptor extracts the XID from incoming HTTP headers and binds it to Seata's \RootContext\ before request handling, and unbinds it afterwards, ensuring distributed transaction context is correctly maintained across servlet requests.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/web · high confidence
Sidecar health check now supports custom handlers and periodic instance registration
The sidecar starter now includes a new \CustomHealthCheckHandler\ interface and integrates it into the \SidecarHealthChecker\. This allows users to provide custom logic that is invoked after each periodic health check cycle, enabling additional actions based on the sidecar instance's status (UP/DOWN/UNKNOWN) without modifying the core health-checking logic. The \SidecarHealthChecker\ now periodically registers or deregisters the sidecar instance with the discovery client based on health status, and the new handler is called in every cycle, giving users a hook to react to these state changes.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar · high confidence
Behavioural changes
Added AOT hints and modernized auto-configuration registration for Spring Boot 3
The Sentinel starter now includes an aot.factories file that registers SentinelProtectInterceptorHints, enabling proper runtime hint support for Ahead-of-Time compilation in Spring Boot 3. Additionally, the auto-configuration classes (SentinelWebAutoConfiguration, SentinelWebFluxAutoConfiguration, SentinelEndpointAutoConfiguration, SentinelAutoConfiguration, and SentinelFeignAutoConfiguration) are now registered via the standard Spring Boot 3 org.springframework.boot.autoconfigure.AutoConfiguration.imports file, replacing the legacy spring.factories mechanism.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/resources/META-INF/spring · high confidence
Added Sentinel-based rate limiting and degradation rules to the Nacos discovery consumer example
The Nacos discovery consumer example now includes configuration files to enable Sentinel for Feign clients, allowing users to define local flow-control and degradation rules. The new \application.properties\ enables Sentinel integration and points to local JSON rule files, while \flowrule.json\ and \degraderule.json\ provide specific examples for limiting request rates and handling service failures for the \service-provider\ endpoints.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/resources · high confidence
Added SentinelClientHttpResponse for REST request blocking
The Sentinel REST starter now includes a new SentinelClientHttpResponse class that implements ClientHttpResponse to handle blocked requests. When a REST call is blocked by Sentinel, this response returns an HTTP 200 OK status with a JSON body containing the block message (defaulting to "RestTemplate request block by sentinel"). The package is also annotated with JSpecify's @NullMarked for null-safety.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/rest · high confidence
Deprecation of NacosPropertySourceLocator for bootstrap-based configuration
The NacosPropertySourceLocator class, which implements the deprecated Spring Cloud bootstrap PropertySourceLocator interface, is now marked as deprecated. This change aligns with the removal of bootstrap configuration support in favor of the standard spring.config.import mechanism, signaling that users should migrate away from this legacy locator approach.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/client · high confidence
Improved Nacos config import validation and refresh event handling
The Nacos config starter now provides clearer error messages when the spring.config.import property is missing or misconfigured, guiding users to add the correct nacos: entry or disable the check. Additionally, a new event listener ensures that Nacos configuration refresh events properly trigger Spring's standard refresh mechanism, keeping application context in sync with remote config changes.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/configdata · high confidence
Internal utility classes replace Apache Commons dependencies
The commons module now includes internal copies of Apache Commons IO and Commons Lang3 utilities (such as Charsets, FileUtils, IOUtils, StringUtils, and PropertySourcesUtils) to remove the external Apache Commons dependencies. This change eliminates the runtime dependency on these libraries while preserving the same utility functionality for configuration property resolution and standard I/O operations.
spring-cloud-alibaba-starters/spring-cloud-alibaba-commons · high confidence
Maven wrapper upgraded to 3.9.14 with JDK 17+ compiler exports
The project now uses Maven wrapper version 3.9.14, ensuring consistent build environments across developers and CI. To support modern Java versions (likely JDK 17+ required by Spring Boot 3.0), a new \.mvn/jvm.config\ file has been added that configures memory limits and explicitly exports internal \jdk.compiler\ modules, which is necessary for annotation processing and compilation tools to function correctly under the Java module system.
.mvn · high confidence
Migrate Nacos Discovery auto-configuration to Spring Boot 3.x imports file
The Nacos Discovery starter now uses the Spring Boot 3.x standard \org.springframework.boot.autoconfigure.AutoConfiguration.imports\ file to register its auto-configurations, replacing the legacy \spring.factories\ mechanism. This change ensures compatibility with modern Spring Boot versions by explicitly listing the discovery, endpoint, registry, client, heartbeat, reactive, config server, load balancer, and utility auto-configuration classes.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/resources/META-INF/spring · high confidence
Migrate RocketMQ Bus starter to Spring Boot 3+ auto-configuration mechanism
The Spring Cloud Alibaba RocketMQ Bus starter now registers its components using the Spring Boot 3+ standard \AutoConfiguration.imports\ file instead of the legacy \spring.factories\ mechanism. This change ensures the starter is correctly detected and initialized by modern Spring Boot versions, aligning with the framework's updated auto-configuration loading strategy.
spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/src/main/resources · high confidence
Migrate Sentinel Gateway to Spring Boot 3.x auto-configuration mechanism
The Sentinel Gateway starter now uses the Spring Boot 3.x standard for registering auto-configurations. Instead of the legacy spring.factories file, it now registers the SentinelSCGAutoConfiguration and SentinelGatewayAutoConfiguration classes via the new org.springframework.boot.autoconfigure.AutoConfiguration.imports file, ensuring compatibility with modern Spring Boot versions.
spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/src/main/resources · high confidence
Migrate Sentinel circuitbreaker to Spring Boot 3 auto-configuration
The Sentinel circuitbreaker starter now uses the Spring Boot 3 \AutoConfiguration.imports\ file for auto-configuration registration, replacing the legacy \spring.factories\ mechanism. This change ensures compatibility with Spring Boot 3's new auto-configuration loading strategy. Additionally, configuration metadata for the \spring.cloud.circuitbreaker.sentinel.enabled\ property has been added to support IDE assistance and configuration metadata generation.
spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/src/main/resources · high confidence
Migrates auto-configuration registration to Spring Boot 3.x format
The sidecar starter now registers its auto-configurations (Nacos, generic, and Consul) using the Spring Boot 3.x standard file (META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports) instead of the legacy spring.factories mechanism. This ensures the sidecar components are correctly discovered and initialized in modern Spring Boot environments.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/resources · high confidence
Nacos Config auto-configuration and bootstrap warning
The Nacos Config starter now registers a dedicated auto-configuration class that ensures the SmartConfigurationPropertiesRebinder and refresh event listener are properly wired, while also introducing a runtime warning if the legacy spring-cloud-starter-bootstrap dependency is detected, guiding users toward the modern spring.config.import approach.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos · high confidence
Nacos Discovery starter refactored with new conditional annotation and service manager
The Nacos Discovery starter has been restructured to improve initialization control and instance handling. A new \@ConditionalOnNacosDiscoveryEnabled\ annotation has been introduced to explicitly gate the auto-configuration based on the \spring.cloud.nacos.discovery.enabled\ property, allowing users to disable discovery without removing the starter. The \NacosServiceManager\ has been added to centralize the lifecycle and creation of \NamingService\ and \NamingMaintainService\ instances, including graceful shutdown support. Additionally, \NacosServiceInstance\ now implements \equals\ and \hashCode\ based on instance identity, and the module applies JSpecify null-safety annotations to the core package.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos · high confidence
Nacos discovery clients now support failure tolerance and heartbeats are opt-in
The Nacos discovery clients (blocking and reactive) now respect the new \spring.cloud.nacos.discovery.failure-tolerance-enabled\ property (defaulting to false); when enabled, they return cached service instances or service IDs instead of throwing exceptions if the Nacos server is unreachable. Additionally, the \NacosWatch\ listener and the \NacosDiscoveryHeartBeatPublisher\ are no longer enabled by default; they must now be explicitly enabled via \spring.cloud.nacos.discovery.watch.enabled\ or \spring.cloud.nacos.discovery.heart-beat.enabled\ respectively, with the heartbeat publisher only activating if Spring Cloud Gateway or Spring Boot Admin integration is detected.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/discovery · high confidence
New RocketMQ utility helpers for property merging and anonymous groups
The RocketMQ binder now includes a new \RocketMQUtils\ class that centralizes common logic for the binder. It provides a \mergeRocketMQProperties\ method to apply default binder-level configuration (such as name server, credentials, and the new \unitName\ for multi-cluster support) to specific topic properties when they are not explicitly set. It also introduces \anonymousGroup\ to automatically generate group names for anonymous consumers, and \getMessageSelector\ to handle SQL-based message filtering. These utilities support the new features for connecting to multiple clusters and supporting anonymous groups in pollable topics.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/utils · high confidence
Optional single-bean refresh for Nacos configuration changes
The Nacos config starter now supports refreshing individual ConfigurationProperties beans instead of always rebinding all beans when configuration changes. This is controlled by the new \spring.cloud.nacos.config.refresh-behavior\ property, which defaults to \ALL\_BEANS\ (the previous behavior) for compatibility. When set to \SPECIFIC\_BEAN\, the new \SmartConfigurationPropertiesRebinder\ matches change keys against the \@ConfigurationProperties\ prefix and rebinds only the affected bean, reducing overhead in applications with many configuration properties.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/refresh · high confidence
Orderly consume example now uses StreamBridge and configurable queue selection
The rocketmq-orderly-consume-example has been updated to demonstrate orderly message consumption using Spring Cloud Stream's StreamBridge for sending messages instead of a direct functional producer. The example now includes a custom OrderlyMessageQueueSelector component that ensures messages with the same origin ID are routed to the same queue, and the application configuration enables orderly consumption for the consumer group while filtering tags via subscription.
spring-cloud-alibaba-examples/rocketmq-example/rocketmq-orderly-consume-example · high confidence
Refactored Nacos Discovery provider example with Jakarta imports and divide-by-zero handling
The Nacos Discovery provider example has been refactored to use the Jakarta EE namespace (importing \jakarta.annotation.Resource\ instead of \javax.annotation.Resource\) and now includes explicit handling for divide-by-zero errors in the \/divide\ endpoint to prevent runtime exceptions. The provider application entry point and controller have been restructured to align with these changes, ensuring the example remains compatible with modern Spring Boot versions while improving robustness.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-provider-example/src/main/java · high confidence
Refactored Nacos discovery consumer example with load balancing and Sentinel URL cleaning
The Nacos discovery consumer example has been refactored to demonstrate modern Spring Cloud patterns and Sentinel integration. The application now explicitly configures load-balanced RestTemplate instances and includes a UrlCleaner component that normalizes request paths (e.g., mapping /echo/{id} to /echo/{str}) for Sentinel rule matching. Additionally, the example introduces Feign client fallback capabilities via EchoClientFallback to handle service failures gracefully, providing a more comprehensive demonstration of resilience and load balancing in a Nacos-based service mesh.
spring-cloud-alibaba-examples/nacos-example/nacos-discovery-example/nacos-discovery-consumer-example/src/main/java · high confidence
Refactored Nacos service registry with graceful shutdown support
The Nacos discovery module has been refactored to introduce a new \NacosGracefulShutdownDelegate\ that ensures the Nacos client is gracefully shut down when the Spring context closes, waiting for a configurable duration to allow in-flight requests to complete. The service registration logic has been restructured into dedicated components (\NacosServiceRegistry\, \NacosAutoServiceRegistration\, \NacosRegistration\) with improved dependency injection via constructors. Additionally, a new \NacosRegistrationCustomizer\ interface allows users to customize registration properties before they are sent to the Nacos server.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/registry · high confidence
Refactored RocketMQ binder auto-configuration and added error acknowledgment interface
The RocketMQ binder's auto-configuration has been restructured to improve modularity and alignment with Spring Cloud Stream standards. Configuration logic for extended binding handler mappings, the \RocketMQConfigBeanPostProcessor\, and message converters has been moved from \RocketMQBinderAutoConfiguration\ to a new \ExtendedBindingHandlerMappingsProviderConfiguration\, ensuring these components are registered via Spring's standard factory mechanisms rather than direct injection. Additionally, a new \ErrorAcknowledgeHandler\ interface has been introduced in the \extend\ package, providing a standardized hook for handling message acknowledgment states (receive, reject, retry) when consumption exceptions occur.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/autoconfigurate · high confidence
Refactored RocketMQ inbound message consumption with retry and anonymous group support
The inbound message consumption logic has been restructured into a dedicated \RocketMQConsumerFactory\ and \RocketMQInboundChannelAdapter\. This change introduces a retry mechanism for message sending that invokes a recovery callback when retries are exhausted, improving error handling for failed messages. Additionally, the adapter now supports anonymous consumer groups for RocketMQ pollable channels, automatically generating a group name when one is not explicitly configured, while enforcing group requirements for Dead Letter Queue (DLQ) topics.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/integration/inbound · high confidence
Refactored RocketMQ producer initialization and message handling
The outbound integration logic for RocketMQ has been restructured to improve code organization and maintainability. A new \RocketMQProduceFactory\ class now centralizes the creation and configuration of \DefaultMQProducer\ and \TransactionMQProducer\ instances, handling setup details such as ACL hooks, message tracing, and producer properties. The \RocketMQProducerMessageHandler\ has been updated to delegate producer initialization to this factory and now explicitly manages lifecycle events (start/stop) and health instrumentation. Additionally, the package is now annotated with \@NullMarked\ from JSpecify to enforce null-safety conventions in the outbound binder code.
spring-cloud-alibaba-starters/spring-cloud-starter-stream-rocketmq/src/main/java/com/alibaba/cloud/stream/binder/rocketmq/integration/outbound · high confidence
Refactored Sentinel Gateway configuration and serialization
The Sentinel Gateway starter has been restructured to use a new \ConfigConstants\ class for configuration prefixes and a dedicated \FallbackProperties\ bean to manage fallback modes (redirect or response) and their settings. The auto-configuration now explicitly wires JSON and XML converters for gateway flow rules and API definitions, utilizing Jackson 3.x (tools.jackson) for serialization. Additionally, a \GatewayEnvironmentPostProcessor\ ensures the Sentinel filter is disabled by default, and null-safety is enforced via JSpecify annotations across the package.
spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway · high confidence
RocketMQ Bus environment defaults are now explicitly configured
The RocketMQ Bus starter now includes a dedicated EnvironmentPostProcessor that automatically sets default configuration values for the message bus. Specifically, it configures the default consumer group to 'rocketmq-bus-group' and enables broadcasting by default. This ensures consistent baseline behavior for RocketMQ-based event propagation without requiring manual property setup.
spring-cloud-alibaba-starters/spring-cloud-starter-bus-rocketmq/src/main/java/com/alibaba/cloud/bus/rocketmq/env · high confidence
Sentinel datasource configuration and rule conversion refactored
The Sentinel datasource module has been restructured to use a new, unified configuration model. A new \DataSourcePropertiesConfiguration\ class now serves as the single entry point for configuring all supported data sources (Nacos, Apollo, Consul, Redis, Zookeeper, and File), replacing the previous scattered property definitions. Each data source now has its own dedicated \\*DataSourceProperties\ class (e.g., \NacosDataSourceProperties\, \ConsulDataSourceProperties\) that extends a new \AbstractDataSourceProperties\ base. This base class introduces a \ruleType\ field, allowing users to explicitly specify the type of Sentinel rule (e.g., flow, degrade, authority) to be managed by the datasource, which is then automatically registered with the corresponding Sentinel rule manager. Additionally, the JSON and XML conversion logic has been updated to use \tools.jackson\ (Jackson 3.x) instead of the previous Jackson version, ensuring compatibility with the newer library while maintaining the same rule conversion behavior.
spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-datasource/src/main · high confidence
Sentinel starter refactored for Spring MVC 6.x and reactive web support
The Sentinel starter has been updated to support Spring MVC 6.x (Spring Boot 3.x+) and Spring WebFlux. The auto-configuration now registers \SentinelWebInterceptor\ for servlet-based applications and \SentinelWebFluxFilter\ for reactive applications, replacing previous implementations. Configuration is centralized in \SentinelProperties\, and the starter now uses JSpecify annotations for null-safety.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel · high confidence
Sentinel starter refactored to support Jackson 3 and custom RestTemplate interceptors
The Sentinel starter has been refactored to migrate its JSON/XML rule parsing from the legacy Jackson 2 API to Jackson 3 (tools.jackson), ensuring compatibility with applications using Jackson 3.x. Additionally, the starter now supports custom RestTemplate beans by introducing a BeanPostProcessor that detects the @SentinelRestTemplate annotation on any RestTemplate instance and automatically registers the SentinelProtectInterceptor, allowing users to apply Sentinel flow control and degradation rules to their own RestTemplate configurations rather than only the auto-configured one.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sentinel/src/main/java/com/alibaba/cloud/sentinel/custom · high confidence
Sidecar now registers its IP address with Nacos Discovery
The sidecar component now explicitly registers its own IP and port with the Nacos service registry. Previously, the sidecar relied on generic discovery mechanisms; this change introduces a dedicated \SidecarNacosDiscoveryClient\ and \SidecarNacosDiscoveryProperties\ that pull the sidecar's specific IP and port from \SidecarProperties\ and use the Nacos \NamingService\ to register the instance. This ensures that the sidecar's network identity is correctly advertised in Nacos, resolving issues where the sidecar's IP was not being registered.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-sidecar/src/main/java/com/alibaba/cloud/sidecar/nacos · high confidence
Storage service now initializes with a JdbcTemplate instead of a Druid DataSource
The storage-service example now uses a standard Spring JdbcTemplate for database interactions, replacing the previously commented-out Druid DataSource configuration. This change was made because Druid does not currently support GraalVM due to its reliance on CGLIB proxies. As a result, the service no longer configures a primary Druid data source and instead relies on a generic DataSource bean to initialize storage records via JdbcTemplate.
spring-cloud-alibaba-examples/seata-example/storage-service/src/main/java/com/alibaba/cloud/examples/config · high confidence
Fixes
Added configuration for Spring Cloud Bus RocketMQ example
The example application now includes an application.properties file that configures the Spring Boot application name, sets the RocketMQ name server address to 127.0.0.1:9876, defines the server port as 8080, and constructs the bus ID using the application name and port.
spring-cloud-alibaba-examples/spring-cloud-bus-rocketmq-example/src/main/resources · high confidence
Prevent Nacos discovery state reset during configuration refresh
A new Nacos discovery refresh environment post-processor ensures that Nacos registration properties are excluded from generic configuration refreshes. By adding \NacosDiscoveryProperties\ to the list of never-refreshable properties, the component prevents accidental resets of discovery state when configuration changes are applied, maintaining stable service registration.
spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-nacos-discovery/src/main/java/com/alibaba/cloud/nacos/refresh · high confidence
Test coverage
Added integration tests for Feign client circuit breaker rules; Added integration tests for Nacos service discovery; Added integration tests for RocketMQ Stream binder; Added integration tests for Sentinel degrade and flow control rules; Added integration tests for SmartConfigurationPropertiesRebinder behavior; Added tests for Nacos config data missing environment post-processor; Added tests for Nacos discovery registration and network interface handling; Added tests for Nacos reactive discovery client configuration and behavior; Added tests for NacosLoadBalancer error handling and cross-cluster logging; Added tests for RocketMQ AOT runtime hints; Added tests for reactive and synchronous Sentinel circuit breakers; Added unit tests for InetIPv6Utils network interface filtering; Added unit tests for Nacos Discovery auto-configuration and service discovery; Added unit tests for Nacos discovery client and properties; Added unit tests for RocketMQ binder configuration and message handling; Added unit tests for Sentinel Gateway configuration and fallback handling; Added unit tests for Sentinel starter components.
Dependencies
Spring Cloud Alibaba 2025.1.0.1 dependency alignment with Spring Boot 4.1 and Spring Cloud 2025.1
The project has been updated to version 2025.1.0.1-SNAPSHOT, aligning with Spring Boot 4.1.0 and Spring Cloud 2025.1.2. This release upgrades core dependencies including Nacos Client to 3.1.1, Sentinel to 1.8.10, Seata to 2.6.0, and RocketMQ to 5.3.1. It also introduces support for Spring Boot 4.x starters, such as \druid-spring-boot-4-starter\, and updates the Maven Central Portal publishing plugin to version 0.7.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 41 → 45 (+4.4)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 78 → 88 (+9.1)
- Architecture 100 → 96 (-3.6)
- Maturity 58 → 58 (-0.4)
- Readiness 46 → 43 (-3.0)
- Security 31 → 52 (+21.2)
- Accessibility 38 → 36 (-2.6)
Resolved (58)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (10 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (10 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- Duplicated block (10 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- Duplicated block (10 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/SentinelGatewayAutoConfiguration.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-alibaba-sentinel-gateway/src/main/java/com/alibaba/cloud/sentinel/gateway/GatewayEnvironmentPostProcessor.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/src/main/java/com/alibaba/cloud/circuitbreaker/sentinel/ReactiveSentinelCircuitBreaker.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-schedulerx/src/main/java/com/alibaba/cloud/scheduling/schedulerx/util/CronExpression.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/web/SeataHandlerInterceptor.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/web/SeataHandlerInterceptor.java)
- Duplicated block (11 lines × 3) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (12 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-schedulerx/src/main/java/com/alibaba/cloud/scheduling/schedulerx/util/CronExpression.java)
- Duplicated block (12 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-schedulerx/src/main/java/com/alibaba/cloud/scheduling/schedulerx/util/CronExpression.java)
- Duplicated block (13 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (13 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/PropertySourcesUtils.java)
- Duplicated block (16 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (16 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- …and 38 more
New (338)
- ClassTooLong: CronExpression (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-schedulerx/src/main/java/com/alibaba/cloud/scheduling/schedulerx/util/CronExpression.java)
- ClassTooLong: NacosAnnotationProcessor (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Coverage not measured — no coverage collector is wired up
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (10 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-seata/src/main/java/com/alibaba/cloud/seata/web/SeataHandlerInterceptor.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/PropertySourcesUtils.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/PropertySourcesUtils.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- Duplicated block (11 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-starter-alibaba-schedulerx/src/main/java/com/alibaba/cloud/scheduling/schedulerx/service/JobSyncService.java)
- Duplicated block (11 lines × 3) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (11–12 lines × 4) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/annotation/NacosAnnotationProcessor.java)
- Duplicated block (12 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- Duplicated block (12 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- Duplicated block (12 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/StringUtils.java)
- Duplicated block (13 lines × 2) (spring-cloud-alibaba-starters/spring-cloud-circuitbreaker-sentinel/src/main/java/com/alibaba/cloud/circuitbreaker/sentinel/ReactiveSentinelCircuitBreaker.java)
- Duplicated block (15 lines × 2) (spring-cloud-alibaba-starters/spring-alibaba-nacos-config/src/main/java/com/alibaba/cloud/nacos/utils/PropertySourcesUtils.java)
- …and 318 more
Changes since last survey
- 3 commits — 3 feature/other, 0 fixes
By area
- .github/workflows — 2 commits
- spring-cloud-alibaba-dependencies/pom.xml — 1 commit
Notable commits
- change: chore: upgrade schedulerx version to 1.14.2 (#4381)
- change: ci: add concurrency guard to GitHub Packages Release workflow (#4393)
- change: ci: enable download progress display in actions/setup-java@v5.5.0+ (#4395)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
alibaba/spring-cloud-alibaba was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 24 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 344a49dfaf5c34fdd953c284597f26f7c45e2f0d — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-ae95d6cad036.