junk_ndsc 2023-02-03 23:42 采纳率: 63.9%
浏览 32
已结题

关于spring多例模式

今天碰到个问题,实现了一个easyexcel的监听器,并设置为多例模式,然后在service层使用autowired进行注入,然后使用读取方法进行解析,解析后通过get方法获取监听器内部的类变量,但是获取之后发现数据为空!然后问题来了,虽然通过autowired注入可能会有问题,但是为什么获取的数据会为空,难道单独使用get方法的实例变成了一个新的实例?

  • 写回答

3条回答 默认 最新

  • 社区专家-Monster-XH 2023-02-04 00:32
    关注

    ''该回答引用ChatGPT''
    如对你的问题有帮助,请点击右侧采纳即可
    很可能是因为每次调用get方法得到的都是一个新的实例,这与autowired注入的多例模式不符。可以考虑在easyexcel的监听器中使用ThreadLocal或单例模式,以便在service层的多个方法中访问监听器的同一实例,从而保证在调用get方法时获取的数据不为空。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月10日
  • 创建了问题 2月3日