gpt4 book ai didi

java - @PostConstruct 与 Spring Batch reader 结合时调用失败

转载 作者:行者123 更新时间:2023-12-02 01:56:28 27 4
gpt4 key购买 nike

我一直在尝试实现@PostConstruct@PreDestroy Account 中的方法我的类(class)。它们在以下情况下都不起作用,但为了简洁起见,我只讨论@PostConstruct .

我正在使用 Spring Batch 的读取器从固定长度的文件加载这些帐户。到目前为止,一切都很好,除了当我的读者创建这些帐户时,它显然没有调用 @PostConstruct方法(永远不会激活调试断点,并且不会打印日志消息)。
阅读器只是自定义,因为它是扩展 FlatFileItemReader<Account> 的自定义类。并在构造函数中设置值。

向阅读器本身添加完全相同的初始化方法(从未在 Account 类中调用过)就可以了。
IE。如果@PostConstruct方法应该在reader初始化时调用,它可以工作。只是当读者本身初始化用@PostConstruct注释的帐户时就不是这样了。 .

如果我在 Account 的构造函数中添加断点或日志消息直接,它也可以正常工作。

<小时/>

这是 Spring Batch 所期望的行为吗?或者这可能是由我的任何配置引起的?

Another question's answer提到注释如@PostConstruct “仅适用于容器管理的 bean”,而不是“您只是自己调用 new BlogEntryDao()”。

这是这里发生的事情吗 - Spring Batch 调用 new Account(...)直接,而不将它们注册到容器中?毕竟,我从来没有将这些帐户用作 Bean 或任何其他东西。

最佳答案

您的 Account 类是否用 @Component@Bean@Service 注释?如果您创建诸如Account c = new Account()之类的帐户类对象,则nSpring不知道此类对象的创建。因此 Spring 不会调用使用 @postConstruct

注解的方法

关于java - @PostConstruct 与 Spring Batch reader 结合时调用失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52226503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com