Spring 集成 DSL 参考文档代码示例无法编译
Spring Integration DSL reference documentation code example doesn't compile
官方 Spring Integration DSL 参考文档在 https://docs.spring.io/spring-integration/reference/html/dsl.html#java-dsl
的第一部分提供了以下代码示例
@Configuration
@EnableIntegration
public class MyConfiguration {
@Bean
public AtomicInteger integerSource() {
return new AtomicInteger();
}
@Bean
public IntegrationFlow myFlow() {
return IntegrationFlows.from(integerSource::getAndIncrement,
c -> c.poller(Pollers.fixedRate(100)))
.channel("inputChannel")
.filter((Integer p) -> p > 0)
.transform(Object::toString)
.channel(MessageChannels.queue())
.get();
}
}
当我将此代码复制粘贴到我的 IDE (IntelliJ) 时,我在这一行收到以下错误
return IntegrationFlows.from(integerSource::getAndIncrement,
错误信息:
Cannot resolve symbol 'integerSource'
我已经尝试了多种将 getAndIncrement 定义为 messageSource 的替代方法,但到目前为止它们都产生了某种错误。
有没有办法让这个例子编译并运行?
我们最近发现了同样的问题。请参阅最新快照中的修复文档:https://docs.spring.io/spring-integration/docs/5.5.2-SNAPSHOT/reference/html/dsl.html#java-dsl。固定代码是这样的:
@Bean
public IntegrationFlow myFlow() {
return IntegrationFlows.fromSupplier(integerSource()::getAndIncrement,
c -> c.poller(Pollers.fixedRate(100)))
.channel("inputChannel")
.filter((Integer p) -> p > 0)
.transform(Object::toString)
.channel(MessageChannels.queue())
.get();
}
下周发布。
您可以通过将 from()
替换为 fromSupplier()
来更改代码
官方 Spring Integration DSL 参考文档在 https://docs.spring.io/spring-integration/reference/html/dsl.html#java-dsl
的第一部分提供了以下代码示例@Configuration
@EnableIntegration
public class MyConfiguration {
@Bean
public AtomicInteger integerSource() {
return new AtomicInteger();
}
@Bean
public IntegrationFlow myFlow() {
return IntegrationFlows.from(integerSource::getAndIncrement,
c -> c.poller(Pollers.fixedRate(100)))
.channel("inputChannel")
.filter((Integer p) -> p > 0)
.transform(Object::toString)
.channel(MessageChannels.queue())
.get();
}
}
当我将此代码复制粘贴到我的 IDE (IntelliJ) 时,我在这一行收到以下错误
return IntegrationFlows.from(integerSource::getAndIncrement,
错误信息:
Cannot resolve symbol 'integerSource'
我已经尝试了多种将 getAndIncrement 定义为 messageSource 的替代方法,但到目前为止它们都产生了某种错误。
有没有办法让这个例子编译并运行?
我们最近发现了同样的问题。请参阅最新快照中的修复文档:https://docs.spring.io/spring-integration/docs/5.5.2-SNAPSHOT/reference/html/dsl.html#java-dsl。固定代码是这样的:
@Bean
public IntegrationFlow myFlow() {
return IntegrationFlows.fromSupplier(integerSource()::getAndIncrement,
c -> c.poller(Pollers.fixedRate(100)))
.channel("inputChannel")
.filter((Integer p) -> p > 0)
.transform(Object::toString)
.channel(MessageChannels.queue())
.get();
}
下周发布。
您可以通过将 from()
替换为 fromSupplier()