Channel Adapter
μ±λ μ΄λν°λ λ¨μΌ λ°μ μ λλ μμ μλ₯Ό λ©μμ§ μ±λμ μ°κ²°ν μ μκ² ν΄μ£Όλ λ©μμ§ μλν¬μΈνΈμ΄λ€.
Configuring An Inbound Channel Adapter
μΈλ°μ΄λ μ±λ μ΄λν° μμ(μλ° κ΅¬μ±μ SourcePollingChannelAdapter)λ Spring κ΄λ¦¬ κ°μ²΄μ λͺ¨λ λ©μλλ₯Ό νΈμΆνκ³ λ©μλμ μΆλ ₯μ Messageλ‘ λ³νν ν nullμ΄ μλ λ°ν κ°μ MessageChannelλ‘ λ³΄λΌ μ μμ΅λλ€.
μ΄λν°μ ꡬλ μ΄ νμ±νλλ©΄ pollerλ μμ€μμ λ©μμ§ μμ μ μλν©λλ€.
pollerλ μ 곡λ ꡬμ±μ λ°λΌ TaskSchedulerλ‘ μμ½λ©λλ€
κ°λ³ μ±λ μ΄λν°μ λν ν΄λ§ κ°κ²© λλ cron ννμμ ꡬμ±νλ €λ©΄ fixed-rate λλ cronκ³Ό κ°μ μΌμ μμ± μ€ νλμ ν¨κ» poller μμλ₯Ό μ 곡ν μ μμ΅λλ€.
λ€μ μμμλ λ κ°μ μΈλ°μ΄λ μ±λ μ΄λν° μΈμ€ν΄μ€λ₯Ό μ μν©λλ€.
@Bean
public IntegrationFlow source1() {
return IntegrationFlow.from(() -> new GenericMessage<>(...),
e -> e.poller(p -> p.fixedRate(5000)))
...
.get();
}
@Bean
public IntegrationFlow source2() {
return IntegrationFlow.from(() -> new GenericMessage<>(...),
e -> e.poller(p -> p.cron("30 * 9-17 * * MON-FRI")))
...
.get();
}
Configuring An Outbound Channel Adapter
outbound-channel-adapter
μμ(Java ꡬμ±μ© @ServiceActivator
)λ ν΄λΉ μ±λλ‘ μ μ‘λ λ©μμ§μ νμ΄λ‘λμ ν¨κ» νΈμΆλμ΄μΌ νλ POJO μλΉμ λ©μλμ MessageChannel
μ μ°κ²°ν μλ μμ΅λλ€.
λ€μ μλ μμλ°μ΄λ μ±λ μ΄λν°λ₯Ό μ μνλ λ°©λ²μ 보μ¬μ€λλ€.
@Bean
public IntegrationFlow outboundChannelAdapterFlow(MyPojo myPojo) {
return f -> f
.handle(myPojo, "handle");
}
μ‘°μ μ€μΈ μ±λμ΄ PollableChannelμΈ κ²½μ° λ€μ μμ μ κ°μ΄ poller νμ μμ(@ServiceActivator
μ @Poller
νμ μ£Όμ)λ₯Ό μ 곡ν΄μΌ ν©λλ€.
public class MyPojo {
@ServiceActivator(channel = "channel1", poller = @Poller(fixedRate = "3000"))
void handle(Object payload) {
...
}
}
Channel Adapter Expressions and Scripts
λ€λ₯Έ λ§μ Spring ν΅ν© κ΅¬μ± μμμ λ§μ°¬κ°μ§λ‘ <inbound-channel-adapter>
λ° <outbound-channel-adapte>
λ SpEL ννμ νκ°λ₯Ό μ§μν©λλ€.
Last updated
Was this helpful?