功能性结合名称

与之前版本 spring-cloud-stream 中使用的基于注释支持(遗留)要求的显式命名不同,函数式 编程模型在绑定名称时默认遵循简单的惯例,从而大大简化了应用程序的配置。 让我们来看第一个例子:spring-doc.cadn.net.cn

@SpringBootApplication
public class SampleApplication {

	@Bean
	public Function<String, String> uppercase() {
	    return value -> value.toUpperCase();
	}
}

在前面的例子中,我们有一个应用程序,只有一个函数作为消息处理。作为功能它有一个 输入和输出。 用于命名输入和输出绑定的命名规范如下:spring-doc.cadn.net.cn

对应于绑定类型(如输入输出)。 这指数是输入或输出绑定的索引。对于典型的单一输入/输出函数,该值总是为0, 所以它只适用于具有多个输入和输出参数的函数spring-doc.cadn.net.cn

对于显式绑定名称,上述命名规范并非必要(参见显式绑定创建)

比如说,如果你想把这个函数的输入映射到远程节点 目标(例如、主题、队列等)称为“我的主题”,你可以用以下属性来实现:spring-doc.cadn.net.cn

--spring.cloud.stream.bindings.uppercase-in-0.destination=my-topic

注意0大写作为物业名称中的一个段使用。同样的情况也适用于大写输出0.spring-doc.cadn.net.cn

描述性装订名称spring-doc.cadn.net.cn

有时为了提高可读性,你可能想给装订起一个更具描述性的名称(比如“账户”、“命令”等)。 另一种看法是,你可以将隐式绑定名映射到显式绑定名。而且你可以用spring.cloud.stream.function.bindings.<binding-name>财产。 这一特性还为依赖自定义接口的现有应用提供了迁移路径 需要明确名称的绑定。spring-doc.cadn.net.cn

--spring.cloud.stream.function.bindings.uppercase-in-0=input

在前面的例子中,你映射并有效地重命名了0大写绑定名称为输入.现在所有配置 性质可以指输入改为绑定名称(例如,--spring.cloud.stream.bindings.input.destination=my-topic).spring-doc.cadn.net.cn

虽然描述性装订名称可能增强配置的可读性,但它们也创造了 另一种误导机制是将隐式绑定名映射到显式绑定名。自从之后所有的事 配置属性将使用显式的绑定名称,您必须始终引用该“绑定”属性 对应它实际对应的函数。我们认为在大多数情况下(功能性组合除外) 这可能有点过头,所以我们建议完全避免使用,尤其是 由于不使用它,提供了连接器目的地和绑定名称之间的清晰路径,例如spring.cloud.stream.bindings.uppercase-in-0.destination=sample-topic, 你显然关联了 的输入大写函数示例主题目的地。

有关属性和其他配置选项的更多信息,请参见配置选项部分。spring-doc.cadn.net.cn