diff --git a/README.md b/README.md index ed00420123..d7c859bd47 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,52 @@ + + Spring Integration [](https://build.spring.io/browse/INT-MAIN) [![Join the chat at https://gitter.im/spring-projects/spring-integration](https://badges.gitter.im/spring-projects/spring-integration.svg)](https://gitter.im/spring-projects/spring-integration?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ================== +Extends the Spring programming model to support the well-known Enterprise Integration Patterns. +Spring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. +Those adapters provide a higher-level of abstraction over Spring’s support for remoting, messaging, and scheduling. +Spring Integration’s primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code. + +Using the Spring Framework encourages developers to code using interfaces and use dependency injection (DI) to provide a Plain Old Java Object (POJO) with the dependencies it needs to perform its tasks. +Spring Integration takes this concept one step further, where POJOs are wired together using a messaging paradigm and individual components may not be aware of other components in the application. +Such an application is built by assembling fine-grained reusable components to form a higher level of functionality. +WIth careful design, these flows can be modularized and also reused at an even higher level. + +In addition to wiring together fine-grained components, Spring Integration provides a wide selection of channel adapters and gateways to communicate with external systems. +Channel Adapters are used for one-way integration (send or receive); gateways are used for request/reply scenarios (inbound or outbound). + +# Installation and Getting Started + +First, you need dependencies in your POM/Gradle: + +```xml + + org.springframework.integration + spring-integration-core + +``` + +which is also pulled transitively if you deal with target protocol channel adapters. +For example for Apache Kafka support you need just this: + +```xml + + org.springframework.integration + spring-integration-kafka + +``` + +For annotations or Java DSL configuration you need to *enable* Spring Integration in the application context: + +```java +@EnableIntegration +@Configuration +public class ExampleConfiguration { + +} +``` + # Code of Conduct Please see our [Code of conduct](https://github.com/spring-projects/.github/blob/main/CODE_OF_CONDUCT.md). @@ -9,6 +55,11 @@ Please see our [Code of conduct](https://github.com/spring-projects/.github/blob Please see our [Security policy](https://github.com/spring-projects/spring-integration/security/policy). +# Documentation + +The Spring Integration maintains reference documentation ([published](https://docs.spring.io/spring-integration/docs/current/reference/html/) and [source](src/reference/asciidoc)), GitHub [wiki pages](https://github.com/spring-projects/spring-integration/wiki), and an [API reference](https://docs.spring.io/spring-integration/docs/current/api/). +There are also [guides and tutorials](https://spring.io/guides) across Spring projects. + # Checking out and Building