Enterprise integration middleware are software systems that offer services to link and integrate separate applications. They cover many use cases and domains like transaction processing, distributed computing, message broker, data access systems, or Enterprise Service Buses (ESB).
Enterprise Service Buses provide an orchestration layer for the many moving parts of an application portfolio. Aimed at enabling separation of concerns through a service orientated architecture along with a feature-rich stack of integrations, this well-intentioned technology often becomes a monolith layer with apps tightly coupled to a specific ESB implementation and difficult-to-test paths through the whole system.
Replacing an ESB is less common in a replatforming project unless you are explicitly trying to replatform away from a given vendor. When this occurs, Spring provides Spring Integration a mature lower-level library of common integration patterns and adapters. Spring integration is a large, complex library to understand. Working through the bits that are important to solve your problems is key to find the right tools for the job. Read the Integrating Data guide for an idea of how the project fits into the overall Spring ecosystem.
Another, newer option builds on top of Spring Integration and Spring Cloud Stream to provide a high-level abstraction for weaving multiple microservices and batch processes together. As it provides more extensive functionalities and covers a range of data processing use cases, Spring Cloud Data Flow is often the best choice to replace an ESB. However, it is more complex to get running and requires additional components to manage the state of your pipelines. Read this Baeldung guide to understand how it addresses similar use cases but differs in its execution from Spring Integration.