关于spring多例模式

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

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

这个问题可能是由于autowired注入的实例不是同一个实例导致的,因为autowired注入的实例是从spring容器中获取的,而get方法获取的实例是新创建的,所以可能会出现数据为空的情况。可以尝试使用@Scope("prototype")注解来指定实例的作用域,以确保每次获取的实例都是同一个。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^