I'm always excited to take on new projects and collaborate with innovative minds.
say@niteshsynergy.com
https://www.niteshsynergy.com/
Spring Boot 3.5 – Complete Upgrade & Feature Notes
By Nitesh Synergy
Spring Boot 3.5 is a stability + cloud-native focused release. It removes old deprecated APIs, tightens security defaults, improves observability, and upgrades most ecosystem dependencies.
This article summarizes what changed, what you must update, and what’s new in a practical way.
spring-boot-parent Removedspring-boot-parent is no longer published
It was only meant for Spring Boot internal tests
Action:
If you were using it, define your own dependency management
<dependencyManagement>
<dependencies>
<!-- define versions explicitly -->
</dependencies>
</dependencyManagement>
heapdump Endpoint SecuredDefault access is now NONE
Prevents accidental memory dump leaks
To enable explicitly:
management:
endpoints:
web:
exposure:
include: heapdump
endpoint:
heapdump:
access: unrestricted
.enabled Properties Are StrictOnly true / false are allowed
Old behavior accepted almost anything except false
Fix configs like:
feature.enabled: true # right
feature.enabled: yes # wrong
Allowed characters:
Letters, digits
- underscore _
From 3.5.1, also allowed:
. + @
Cannot start or end with - or _
Disable validation if needed:
spring.profiles.validate=false
Now follows redirects by default
Same behavior as RestTemplate
If tests fail:
testRestTemplate.withRedirects(...)
Before:
taskExecutor
applicationTaskExecutor
Now:
Only applicationTaskExecutor
Temporary alias workaround:
beanFactory.registerAlias("applicationTaskExecutor", "taskExecutor");
Dependency changed:
OLD: io.prometheus:simpleclient_pushgateway
NEW: io.prometheus:prometheus-metrics-exporter-pushgateway
Property rename:
management.prometheus.metrics.export.pushgateway.address=host:port
New options:
scheme → https support
token → token auth
format → text / protobuf
JSON format is now nested
Better compatibility with log backends (ELK, OpenSearch)
Control stack trace size and format:
logging.structured.json.stacktrace.*
New environment support:
OTEL_SERVICE_NAME
OTEL_RESOURCE_ATTRIBUTES
New resource attributes:
service.namespace ← from spring.application.group
Deprecated:
service.group
When using spring.data.redis.url, database index comes from URL
spring.data.redis.database is ignored in this case
New:
spring.data.redis.lettuce.read-from=replica-preferred
New property:
spring.data.mongodb.protocol=mongodb+srv
New consumer property:
spring.kafka.consumer.max-poll-interval
New listener retry property:
spring.kafka.listener.auth-exception-retry-interval
Version upgraded to 4.31.0
New properties:
spring.liquibase.analytics-enabled=false
spring.liquibase.license-key=XXXX
Redirects enabled by default
Timeouts & redirects configurable via properties
New ClientHttpConnectorBuilder for advanced config
More granular auto-configs:
Servlet vs Reactive
Client vs Resource Server
This improves startup performance and clarity.
New auto-configured bootstrapExecutor
Requires applicationTaskExecutor
Improves startup time.
If a TaskDecorator bean exists:
It applies automatically to scheduled tasks
Force Spring Boot to still create AsyncTaskExecutor:
spring.task.execution.mode=force
Default builder changed:
paketobuildpacks/builder-noble-java-tiny
No shell inside container
Use this if needed:
paketobuildpacks/ubuntu-noble-run-base
Now supported for:
Kafka
MongoDB
Redis
RabbitMQ
Cassandra
Elasticsearch
Also supported in:
Testcontainers
Docker Compose
Custom JobParametersConverter now supported
New validation property:
spring.batch.jdbc.validate-transaction-state=true
| Technology | Version |
|---|---|
| Spring Security | 6.5.0 |
| Spring Data | 2025.0 |
| Kafka | 3.9 |
| MongoDB Driver | 5.4 |
| MySQL | 9.2 |
| Hibernate | via JPA updates |
| Micrometer | 1.15 |
| OpenTelemetry | 1.49 |
| Testcontainers | 1.21 |
| Liquibase | 4.31 |
Removed:
Deprecated APIs from Spring Boot 3.3
SignalFX support
Zipkin URLConnectionSender
Old Micrometer observation property
Renamed properties:
spring.mvc.converters.preferred-json-mapper
→ spring.http.converters.preferred-json-mapper
YES, if you want:
Better security defaults
Cleaner async & task execution
Improved observability
Modern container & cloud readiness
Updated Kafka, MongoDB, MySQL, Hibernate ecosystem
Be careful if:
You rely on old deprecated APIs
You use taskExecutor by name
You depend on loose .enabled configs
Donate Us
https://razorpay.me/@niteshsynergy
Your email address will not be published. Required fields are marked *