spring-integration Handledning
Komma igång med vårintegration
Sök…
Anmärkningar
Det här avsnittet ger en översikt över vad vår-integration är och varför en utvecklare kanske vill använda den.
Det bör också nämna alla stora ämnen inom vårintegrationen och koppla till de relaterade ämnena. Eftersom dokumentationen för vårintegrering är ny kan du behöva skapa initialversioner av relaterade ämnen.
versioner
| Version | Utgivningsdatum |
|---|---|
| 4.3.x | 2016/11/07 |
| 4.2.x | 2016/11/07 |
| 4.1.x | 2016/07/25 |
| 4.0.x | 2016/07/26 |
| 3.0.x | 2015/10/27 |
| 2.2.x | 2016/01/27 |
| 2.1.x | 2013/06/10 |
| 2.0.x | 2013/04/11 |
| 1.0.x | 2010-04-16 |
Installation eller installation
Det bästa sättet att komma igång med Spring-Integration i ditt projekt är med ett beroendehanteringssystem, som gradle.
dependencies {
compile 'org.springframework.integration:spring-integration-core:4.3.5.RELEASE'
}
Nedan är ett mycket enkelt exempel med gatepoints , servo-aktivatormeddelandets slutpunkter.
//these annotations will enable Spring integration and scan for components
@Configuration
@EnableIntegration
@IntegrationComponentScan
public class Application {
//a channel has two ends, this Messaging Gateway is acting as input from one side of inChannel
@MessagingGateway
interface Greeting {
@Gateway(requestChannel = "inChannel")
String greet(String name);
}
@Component
static class HelloMessageProvider {
//a service activator act as a handler when message is received from inChannel, in this example, it is acting as the handler on the output side of inChannel
@ServiceActivator(inputChannel = "inChannel")
public String sayHello(String name) {
return "Hi, " + name;
}
}
@Bean
MessageChannel inChannel() {
return new DirectChannel();
}
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(Application.class);
Greeting greeting = context.getBean(Greeting.class);
//greeting.greet() send a message to the channel, which trigger service activitor to process the incoming message
System.out.println(greeting.greet("Spring Integration!"));
}
}
Den visar strängen Hi, Spring Integration! i konsolen.
Naturligtvis ger Spring Integration också konfigurering av xml-stil. För exemplet ovan kan du skriva en sådan följande xml-konfigurationsfil.
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd">
<int:gateway default-request-channel="inChannel"
service-interface="spring.integration.stackoverflow.getstarted.Application$Greeting"/>
<int:channel id="inChannel"/>
<int:service-activator input-channel="inChannel" method="sayHello">
<bean class="spring.integration.stackoverflow.getstarted.Application$HelloMessageProvider"/>
</int:service-activator>
</beans>
För att köra applikationen med konfigurationsfilen xml, bör du ändra kodens new AnnotationConfigApplicationContext(Application.class) i Application till new ClassPathXmlApplicationContext("classpath:getstarted.xml") . Och kör den här applikationen igen, du kan se samma utgång.
Generisk in- och utgående kanaladapter
Kanaladapter är en av meddelandets slutpunkter i Spring Integration. Det används för enkelriktat meddelandeflöde. Det finns två typer av kanaladapter:
Inkommande adapter : ingångssidan av kanalen. Lyssna eller läs aktivt meddelande.
Utgående adapter : utgångssidan av kanalen. Skicka meddelande till Java-klass eller externt system eller protokoll.
Källkod.
public class Application { static class MessageProducer { public String produce() { String[] array = {"first line!", "second line!", "third line!"}; return array[new Random().nextInt(3)]; } } static class MessageConsumer { public void consume(String message) { System.out.println(message); } } public static void main(String[] args) { new ClassPathXmlApplicationContext("classpath:spring/integration/stackoverflow/ioadapter/ioadapter.xml"); } }Konfigurationsfil för XML-stil:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd"> <int:channel id="channel"/> <int:inbound-channel-adapter id="inAdapter" channel="channel" method="produce"> <bean class="spring.integration.stackoverflow.ioadapter.Application$MessageProducer"/> <int:poller fixed-rate="1000"/> </int:inbound-channel-adapter> <int:outbound-channel-adapter id="outAdapter" channel="channel" method="consume"> <bean class="spring.integration.stackoverflow.ioadapter.Application$MessageConsumer"/> </int:outbound-channel-adapter> </beans>Meddelandeflöde
-
inAdapter: en inkommande kanaladapter. InvokeApplication$MessageProducer.producemetod varje 1 sekund (<int:poller fixed-rate="1000"/>) och skicka den returnerade strängen som meddelande till kanalenchannel. -
channel: kanal för att överföra meddelande. -
outAdapter: en utgående kanaladapter. När meddelande nådde på kanalchannel, kommer denna adapter emot meddelandet och sedan skicka den tillApplication$MessageConsumer.consumemetod som skriver ut meddelandet på konsolen. - Så du kan observera att dessa slumpmässiga valsträngar kommer att visas på konsolen varje 1 sekund.
-
Enkelt ekoexempel med Spring-Integration-Stream
Java-kod:
public class StdioApplication {
public static void main(String[] args) {
new ClassPathXmlApplicationContext("classpath:spring/integration/stackoverflow/stdio/stdio.xml");
}
}
Xml-konfigurationsfil
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-stream="http://www.springframework.org/schema/integration/stream"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration/stream
http://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd">
<int:channel id="channel"/>
<int-stream:stdin-channel-adapter id="stdin" channel="channel">
<int:poller fixed-rate="1000"/>
</int-stream:stdin-channel-adapter>
<int-stream:stdout-channel-adapter id="stdout" channel="channel"/>
</beans>
Detta är ett ekoexempel. När du kör denna Java-applikation kan du mata in någon sträng och sedan visas den på konsolen.

