在 Spring Batch 的 SkipPolicy 中访问作业文件名参数

2024-05-25

我有一份 Spring Batch 的工作,我使用 BeanIO 读取一些文件,并且我会处理无效文件,所以我创建了一个 SkipPolicy 类。

public class FileVerificationSkipper implements SkipPolicy {

    private static final FluentLogger LOGGER = LoggerService.init(FileVerificationSkipper.class);

    @Override
    public boolean shouldSkip(Throwable exception, int skipCount) throws SkipLimitExceededException {
        if (exception instanceof FileNotFoundException) {
            return false;
        }

        if (exception instanceof BeanReaderException && skipCount <= 10) {
            LOGGER.all().logKey("Error on read file: ").value(exception).asError();
            return true;
        }
        else {
            return false;
        }
    }

}

在我的读者步骤中,我像这样访问名称:@Value("#{jobParameters['input.file.name']}") String inputFile

我想记录文件名,我该怎么做?


调试 Spring Batch 如何注入参数我找到了解决方案。

我只需要添加@StepScope在类中并创建我想要注入参数的变量:

@Component
@StepScope
@RequiredArgsConstructor
public class FileVerificationSkipper implements SkipPolicy {

    @Value("#{jobParameters['input.file.name']}")
    private String inputFile;

    ...

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Spring Batch 的 SkipPolicy 中访问作业文件名参数 的相关文章

随机推荐

  • xpages 部分 - 完整搜索

    我看到 IBM 的一个很棒的教程 解释了在视图面板中创建搜索模数 视图面板中的代码 search属性 我调整 Field txt autor sessionScope searchAutor 我是否有机会修改代码 以便它也提供部分字符串匹配
  • 如何在 Visual Studio Code 中扩展 launch.json 中的 $PATH?

    我有一些 shell 脚本 我想在 Visual Studio Code 中调试期间通过代码名称执行这些脚本 我需要扩展 PATH 环境变量才能实现它 目前 我在 launch json 中有以下 json name Debug Linux
  • gitlab:带有大型存储库的 git clone https 失败

    当尝试通过 https 克隆大型存储库 700MB 时 git 失败并显示 c git projects gt git clone https git mycompany de fs git Cloning into fs Username
  • 如何使用 Hibernate 转换平面结果集

    是否可以将 SQL 结果映射到非平面对象 List
  • 如何去交织位(UnMortonizing?)

    从 32 位 int 中解交织位的最有效方法是什么 对于这种特殊情况 我只关心奇数位 尽管我确信将任何解决方案推广到这两个集合都很简单 例如我想转换0b01000101 into 0b1011 最快的方法是什么 EDIT 在这个应用程序中
  • 如何使用 WhatsAPI 官方在 PHP 中从 WhatsApp 发送消息?

    我正在尝试使用 WhatsApi 官方库通过 WhatsApp 从 php 文件发送消息 我已经将库移到了我的 Apache Web 服务器中的一个文件夹中 调用测试 如下所示 文件whatsapp php 是这样的
  • 更改 RaphaelJS 中的文本

    如何更改 RaphaelJS 创建的文本节点中的文本 首先 我使用 Raphael 创建一个带有文本字符串的新元素 稍后我想更改此文本 如果我这样做的话对我来说会更容易not必须重新初始化该元素 因为将附加大量属性 重新创建会很痛苦 有没有
  • Java RMI 在租约到期后不关闭套接字

    我启用 RMI 的应用程序似乎正在泄漏套接字 我有一个通过 RMI 提供服务的 Java 应用程序 它使用在 Linux 上运行的 Java SE 1 6 RMI 实现 我观察到的问题是 如果客户端使用注册表获取对我的远程对象的引用 然后连
  • 有人为 MSP430 的 IAR Embedded Workbench 实现了 __getzone() 吗?

    我必须在我的应用程序中处理一些时间转换 我想尽可能坚持使用标准库函数 现在我使用 time t 结构作为我的系统时间基准 但是 某些设备可以将时间同步到我的设备 该时间可能是也可能不是 UTC 此外 我的设备会将时间同步到另一台设备 并且该
  • Python->Beautifulsoup->Webscraping->循环 URL(1 到 53)并保存结果

    这是我正在尝试抓取的网站 http livingwage mit edu http livingwage mit edu 具体网址来自 http livingwage mit edu states 01 http livingwage mi
  • C 函数声明中的无类型参数

    最近我一直在查看 Steven Skiena 的在线资源中的一些 C 示例代码 算法设计手册 http www cs sunysb edu skiena algorist book programs 并且对他的一些函数调用的语法感到困惑 诚
  • 如何使用ssh直接连接远程docker容器

    我想直接使用 ssh 连接到远程运行的 Docker 容器 通常我可以 ssh i privateKey user host docker ps which will list all running containers docker e
  • 如何保持诗歌和承诺版本同步?

    我有一个pyproject toml with tool poetry name my project version 0 1 0 tool commitizen name cz conventional commits version 0
  • ZF2 共享模块事件管理器

    当特定情况发生时 我需要在每个模块中实现一个事件触发器 我还需要所有其他模块在触发该事件时必须执行某些工作 请注意这一点 我正在尝试创建一些通用端点 我可以在其中发送触发器 并且所有模块都需要监听 但我在弄清楚如何实现这一点时遇到了一些麻烦
  • 将 Bootstrap 导航栏列表项包裹在居中的品牌图像周围

    我整晚都在搞乱这个问题 没有解决办法 我正在使用 bootstrap 2 32 对于 joomla 模板 尚不支持 BS3 并且我将拥有动态数量的列表项 我需要将列表项居中 但也同样包裹在中心 brand img 的左侧和右侧 我可以把它分
  • 包含 Qt 标头的正确方法是什么?

    到目前为止我知道几种方法 includeQt 类 include
  • java中的EhCache默认缓存

    我对 ehCache 有这样的配置
  • Azure DevOps - 使用 GUI 而不是 YAML 来编辑构建管道

    不久前 Azure DevOps 添加了对 YAML 构建管道的支持 这对于高级用户来说非常好 我明白 专业人士只使用命令行和纯文本工具 GUI 适合弱用户 原因有很多 有没有办法返回 GUI 经典编辑器 来编辑现有管道 我已禁用该功能 如
  • 更短的 POST 验证方式?

    我总是进行 POST 的检查验证 有时它会变得太混乱和冗长 保持简短和整洁的最佳方法是什么 Example if isset POST albumName trim POST albumName isset POST slugName PO
  • 在 Spring Batch 的 SkipPolicy 中访问作业文件名参数

    我有一份 Spring Batch 的工作 我使用 BeanIO 读取一些文件 并且我会处理无效文件 所以我创建了一个 SkipPolicy 类 public class FileVerificationSkipper implements