此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Integration 6.3.1! |
V5.0 引入了 JDBC(请参阅元数据存储)实现。
您可以使用 在应用程序重新启动时维护元数据状态。
此实现可用于适配器,如下所示:MetadataStore
JdbcMetadataStore
MetadataStore
要将这些适配器配置为使用 ,请使用 Bean 名称 声明 Spring Bean。
Feed 入站通道适配器和 Feed 入站通道适配器都会自动选取并使用声明的 ,如以下示例所示:JdbcMetadataStore
metadataStore
JdbcMetadataStore
@Bean
public MetadataStore metadataStore(DataSource dataSource) {
return new JdbcMetadataStore(dataSource);
}
该软件包具有多个 RDMBS 供应商的数据库架构脚本。
例如,以下列表显示了元数据表的 H2 DDL:org.springframework.integration.jdbc
CREATE TABLE INT_METADATA_STORE (
METADATA_KEY VARCHAR(255) NOT NULL,
METADATA_VALUE VARCHAR(4000),
REGION VARCHAR(100) NOT NULL,
constraint INT_METADATA_STORE_PK primary key (METADATA_KEY, REGION)
);
您可以更改前缀以匹配目标数据库设计要求。
您还可以配置为使用自定义前缀。INT_
JdbcMetadataStore
实现 ,使其在多个应用程序实例之间可靠地共享,其中只有一个实例可以存储或修改键的值。
由于交易保证,所有这些操作都是原子的。JdbcMetadataStore
ConcurrentMetadataStore
事务管理必须使用 .
入站通道适配器可以提供对轮询器配置中的引用。
与非事务性实现不同,具有 ,该条目仅在事务提交后才会出现在目标表中。
发生回滚时,不会向表中添加任何条目。JdbcMetadataStore
TransactionManager
MetadataStore
JdbcMetadataStore
INT_METADATA_STORE
从版本 5.0.7 开始,您可以使用特定于 RDBMS 供应商的选项配置,以便对元数据存储条目进行基于锁的查询。
默认情况下,如果目标数据库不支持行锁定功能,则可以使用空字符串进行配置。
请咨询您的供应商,了解表达式中有关在更新之前锁定行的特定提示和可能的提示。JdbcMetadataStore
lockHint
FOR UPDATE
SELECT