(window.webpackJsonp=window.webpackJsonp||[]).push([[375],{807:function(e,v,t){"use strict";t.r(v);var _=t(56),r=Object(_.a)({},(function(){var e=this,v=e.$createElement,t=e._self._c||v;return t("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[t("h2",{attrs:{id:"附录-a-条目阅读器和条目编写器列表"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#附录-a-条目阅读器和条目编写器列表"}},[e._v("#")]),e._v(" 附录 A:条目阅读器和条目编写器列表")]),e._v(" "),t("h3",{attrs:{id:"条目阅读器"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#条目阅读器"}},[e._v("#")]),e._v(" 条目阅读器")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[e._v("Item Reader")]),e._v(" "),t("th",[e._v("说明")])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("AbstractItemCountingItemStreamItemReader")]),e._v(" "),t("td",[e._v("抽象基类,通过计算从"),t("br"),e._v("和"),t("code",[e._v("ItemReader")]),e._v("返回的项数,提供基本的"),t("br"),e._v("重启功能。")])]),e._v(" "),t("tr",[t("td",[e._v("AggregateItemReader")]),e._v(" "),t("td",[e._v("一个"),t("code",[e._v("ItemReader")]),e._v("提供一个列表作为其"),t("br"),e._v("项,存储来自注入的"),t("code",[e._v("ItemReader")]),e._v("的对象,直到它们"),t("br"),e._v("准备好作为集合打包。必须将这个类"),t("br"),e._v("用作自定义"),t("code",[e._v("ItemReader")]),e._v("的包装器,该包装器可以标识记录"),t("br"),e._v("的边界。自定义读取器应该通过返回一个"),t("code",[e._v("AggregateItem")]),e._v("来标记"),t("br"),e._v("记录的开始和结束,它将对其"),t("code",[e._v("true")]),e._v("查询方法"),t("br"),e._v("和"),t("code",[e._v("isFooter()")]),e._v("进行响应。请注意,这个阅读器"),t("br"),e._v("不是 Spring 批"),t("br"),e._v("提供的阅读器库的一部分,而是作为"),t("code",[e._v("spring-batch-samples")]),e._v("中的示例给出的。")])]),e._v(" "),t("tr",[t("td",[e._v("AmqpItemReader")]),e._v(" "),t("td",[e._v("给定一个 Spring "),t("code",[e._v("AmqpTemplate")]),e._v(",它提供了"),t("br"),e._v("同步接收方法。"),t("code",[e._v("receiveAndConvert()")]),e._v("方法"),t("br"),e._v("允许你接收 POJO 对象。")])]),e._v(" "),t("tr",[t("td",[e._v("KafkaItemReader")]),e._v(" "),t("td",[e._v("从 Apache Kafka 主题读取消息的"),t("code",[e._v("ItemReader")]),e._v("。"),t("br"),e._v("可以将其配置为从同一主题的多个分区读取消息。"),t("br"),e._v("此阅读器在执行上下文中存储消息偏移量,以支持重新启动功能。")])]),e._v(" "),t("tr",[t("td",[e._v("FlatFileItemReader")]),e._v(" "),t("td",[e._v("从平面文件读取。包括"),t("code",[e._v("ItemStream")]),e._v("和"),t("code",[e._v("Skippable")]),e._v("功能。参见["),t("code",[e._v("FlatFileItemReader")]),e._v("]。")])]),e._v(" "),t("tr",[t("td",[e._v("HibernateCursorItemReader")]),e._v(" "),t("td",[e._v("基于 HQL 查询从游标读取。参见["),t("code",[e._v("Cursor-based ItemReaders")]),e._v("]。")])]),e._v(" "),t("tr",[t("td",[e._v("HibernatePagingItemReader")]),e._v(" "),t("td",[e._v("从分页的 HQL 查询中读取")])]),e._v(" "),t("tr",[t("td",[e._v("ItemReaderAdapter")]),e._v(" "),t("td",[e._v("将任何类调整为"),t("code",[e._v("ItemReader")]),e._v("接口。")])]),e._v(" "),t("tr",[t("td",[e._v("JdbcCursorItemReader")]),e._v(" "),t("td",[e._v("通过 JDBC 从数据库游标读取数据。参见["),t("code",[e._v("Cursor-based ItemReaders")]),e._v("]。")])]),e._v(" "),t("tr",[t("td",[e._v("JdbcPagingItemReader")]),e._v(" "),t("td",[e._v("给定一个 SQL 语句,在行中进行分页"),t("br"),e._v(",这样就可以在不耗尽"),t("br"),e._v("内存的情况下读取大型数据集。")])]),e._v(" "),t("tr",[t("td",[e._v("JmsItemReader")]),e._v(" "),t("td",[e._v("给定一个 Spring "),t("code",[e._v("JmsOperations")]),e._v("对象和一个 JMS"),t("br"),e._v("向其发送错误的目的地或目的地名称,提供通过注入的项"),t("br"),e._v("接收到的"),t("code",[e._v("JmsOperations#receive()")]),e._v("方法。")])]),e._v(" "),t("tr",[t("td",[e._v("JpaPagingItemReader")]),e._v(" "),t("td",[e._v("给定一个 JPQL 语句,通过"),t("br"),e._v("行进行分页,这样就可以在不耗尽"),t("br"),e._v("内存的情况下读取大型数据集。")])]),e._v(" "),t("tr",[t("td",[e._v("ListItemReader")]),e._v(" "),t("td",[e._v("提供列表中的项,在"),t("br"),e._v("时间提供一个列表。")])]),e._v(" "),t("tr",[t("td",[e._v("MongoItemReader")]),e._v(" "),t("td",[e._v("给定一个"),t("code",[e._v("MongoOperations")]),e._v("对象和一个基于 JSON 的 MongoDB"),t("br"),e._v("查询,提供从"),t("code",[e._v("MongoOperations#find()")]),e._v("方法接收的项。")])]),e._v(" "),t("tr",[t("td",[e._v("Neo4jItemReader")]),e._v(" "),t("td",[e._v("给定一个"),t("code",[e._v("Neo4jOperations")]),e._v("对象和一个"),t("br"),e._v("Cyhper 查询的组件,返回的项是 NEO4jOperations.query"),t("br"),e._v("方法的结果。")])]),e._v(" "),t("tr",[t("td",[e._v("RepositoryItemReader")]),e._v(" "),t("td",[e._v("给定一个 Spring data"),t("code",[e._v("PagingAndSortingRepository")]),e._v("对象,"),t("br"),e._v("a"),t("code",[e._v("Sort")]),e._v(",以及要执行的方法的名称,返回由"),t("br"),e._v(" Spring 数据存储库实现的项。")])]),e._v(" "),t("tr",[t("td",[e._v("StoredProcedureItemReader")]),e._v(" "),t("td",[e._v("从执行数据库存储过程的"),t("br"),e._v("所产生的数据库游标读取数据。参见["),t("code",[e._v("StoredProcedureItemReader")]),e._v("]")])]),e._v(" "),t("tr",[t("td",[e._v("StaxEventItemReader")]),e._v(" "),t("td",[e._v("通过 stax 进行读取,参见["),t("code",[e._v("StaxEventItemReader")]),e._v("]。")])]),e._v(" "),t("tr",[t("td",[e._v("JsonItemReader")]),e._v(" "),t("td",[e._v("从 JSON 文档中读取项目。参见["),t("code",[e._v("JsonItemReader")]),e._v("]。")])])])]),e._v(" "),t("h3",{attrs:{id:"条目编写者"}},[t("a",{staticClass:"header-anchor",attrs:{href:"#条目编写者"}},[e._v("#")]),e._v(" 条目编写者")]),e._v(" "),t("table",[t("thead",[t("tr",[t("th",[e._v("Item Writer")]),e._v(" "),t("th",[e._v("说明")])])]),e._v(" "),t("tbody",[t("tr",[t("td",[e._v("AbstractItemStreamItemWriter")]),e._v(" "),t("td",[e._v("组合"),t("code",[e._v("ItemStream")]),e._v("和"),t("code",[e._v("ItemWriter")]),e._v("接口的抽象基类。")])]),e._v(" "),t("tr",[t("td",[e._v("AmqpItemWriter")]),e._v(" "),t("td",[e._v("给定 Spring "),t("code",[e._v("AmqpTemplate")]),e._v(",它为同步"),t("code",[e._v("send")]),e._v("方法提供了"),t("br"),e._v("。"),t("code",[e._v("convertAndSend(Object)")]),e._v("方法允许你发送 POJO 对象。")])]),e._v(" "),t("tr",[t("td",[e._v("CompositeItemWriter")]),e._v(" "),t("td",[e._v("在注入"),t("code",[e._v("List")]),e._v("的"),t("code",[e._v("ItemWriter")]),e._v("对象中,将一个项传递给每个"),t("br"),e._v("的"),t("code",[e._v("write")]),e._v("方法。")])]),e._v(" "),t("tr",[t("td",[e._v("FlatFileItemWriter")]),e._v(" "),t("td",[e._v("写入平面文件。包括"),t("code",[e._v("ItemStream")]),e._v("和"),t("br"),e._v("可跳过的功能。参见["),t("code",[e._v("FlatFileItemWriter")]),e._v("]。")])]),e._v(" "),t("tr",[t("td",[e._v("GemfireItemWriter")]),e._v(" "),t("td",[e._v("使用"),t("code",[e._v("GemfireOperations")]),e._v("对象,可以根据 delete"),t("br"),e._v("标志的配置从 Gemfire 实例中写入"),t("br"),e._v("项。")])]),e._v(" "),t("tr",[t("td",[e._v("HibernateItemWriter")]),e._v(" "),t("td",[e._v("这个条目编写器 Hibernate-会话知道"),t("br"),e._v(",并处理一些与事务相关的工作,而非“ Hibernate-知道”"),t("br"),e._v("的条目编写器不需要了解这些工作,然后将"),t("br"),e._v("委托给另一个条目编写器来进行实际的写作。")])]),e._v(" "),t("tr",[t("td",[e._v("ItemWriterAdapter")]),e._v(" "),t("td",[e._v("将任何类调整为"),t("code",[e._v("ItemWriter")]),e._v("接口。")])]),e._v(" "),t("tr",[t("td",[e._v("JdbcBatchItemWriter")]),e._v(" "),t("td",[e._v("使用来自"),t("code",[e._v("PreparedStatement")]),e._v("(如果可用)的批处理功能,并且可以"),t("br"),e._v("在"),t("code",[e._v("flush")]),e._v("期间采取基本步骤来定位故障。")])]),e._v(" "),t("tr",[t("td",[e._v("JmsItemWriter")]),e._v(" "),t("td",[e._v("使用"),t("code",[e._v("JmsOperations")]),e._v("对象,通过"),t("code",[e._v("JmsOperations#convertAndSend()")]),e._v("方法将项"),t("br"),e._v("写入默认队列。")])]),e._v(" "),t("tr",[t("td",[e._v("JpaItemWriter")]),e._v(" "),t("td",[e._v("这个条目编写器是 JPA EntityManager-aware 的"),t("br"),e._v(",并处理一些与事务相关的工作,而非“ JPA-aware”"),t("code",[e._v("ItemWriter")]),e._v("不需要了解这些工作,并且"),t("br"),e._v("然后将其委托给另一个编写器来进行实际的编写。")])]),e._v(" "),t("tr",[t("td",[e._v("KafkaItemWriter")]),e._v(" "),t("td",[e._v("使用"),t("code",[e._v("KafkaTemplate")]),e._v("对象,通过"),t("code",[e._v("KafkaTemplate#sendDefault(Object, Object)")]),e._v("方法将项写入默认主题,并使用"),t("code",[e._v("Converter")]),e._v("来映射该项的键。"),t("br"),e._v("还可以配置一个 delete 标志,以将 delete 事件发送到该主题。")])]),e._v(" "),t("tr",[t("td",[e._v("MimeMessageItemWriter")]),e._v(" "),t("td",[e._v("使用 Spring 的"),t("code",[e._v("JavaMailSender")]),e._v(",类型"),t("code",[e._v("MimeMessage")]),e._v("的项作为邮件发送。")])]),e._v(" "),t("tr",[t("td",[e._v("MongoItemWriter")]),e._v(" "),t("td",[e._v("给定一个"),t("code",[e._v("MongoOperations")]),e._v("对象,通过"),t("code",[e._v("MongoOperations.save(Object)")]),e._v("方法写项目"),t("br"),e._v("。实际的写入被延迟"),t("br"),e._v(",直到事务提交之前的最后一个可能时刻。")])]),e._v(" "),t("tr",[t("td",[e._v("Neo4jItemWriter")]),e._v(" "),t("td",[e._v("给定一个"),t("code",[e._v("Neo4jOperations")]),e._v("对象,项目将通过"),t("code",[e._v("save(Object)")]),e._v("方法持久化,或者根据"),t("code",[e._v("ItemWriter’s")]),e._v("配置通过"),t("code",[e._v("delete(Object)")]),e._v("方法删除。")])]),e._v(" "),t("tr",[t("td",[e._v("PropertyExtractingDelegatingItemWriter")]),e._v(" "),t("td",[e._v("扩展"),t("code",[e._v("AbstractMethodInvokingDelegator")]),e._v("动态创建参数。参数是通过从要处理的项中的字段(通过"),t("code",[e._v("SpringBeanWrapper")]),e._v(")检索"),t("br"),e._v("中的值来创建的,基于注入的字段"),t("br"),e._v("名称数组。")])]),e._v(" "),t("tr",[t("td",[e._v("RepositoryItemWriter")]),e._v(" "),t("td",[e._v("给定一个 Spring 数据"),t("code",[e._v("CrudRepository")]),e._v("的实现,"),t("br"),e._v("项是通过在配置中指定的方法保存的。")])]),e._v(" "),t("tr",[t("td",[e._v("StaxEventItemWriter")]),e._v(" "),t("td",[e._v("使用"),t("code",[e._v("Marshaller")]),e._v("实现"),t("br"),e._v("将每个项转换为 XML,然后使用"),t("br"),e._v("stax 将其写入 XML 文件。")])]),e._v(" "),t("tr",[t("td",[e._v("jsonfileitemwriter")]),e._v(" "),t("td",[e._v("使用"),t("code",[e._v("JsonObjectMarshaller")]),e._v("实现将每个项转换为 JSON,然后将其写入 JSON 文件。")])])])])])}),[],!1,null,null,null);v.default=r.exports}}]);