1. 老师,想请教您一个问题,是这样的,我有一个执行器类是作为一个bean的,并且scope是多实例prototype的,然后业务就是每次有文件数据上传时候,它会消费上一个执行器留给它在阻塞队列里的内容。所以只要上传一次新的文件,就要applicationContext.getBean(),获取一个新的对象,然后调用该对象的处理方法。
2. 想问老师的就是,我这里是多实例的,那随着时间推移,系统不重启,不断创建新的对象,内存不是越来越大嘛。。。会自动回收之前创建的对象嘛,但是他又作为一个bean被spring管理,这个生命周期咋样的
3. 还有一个问题就是调用该类处理方法的时候,由于里面需要调用别人系统的接口获取数据,所以我在该类中设置了一个全局map当做缓存,key是当前的this.hashCode(),value就是上面获取的数据,数据量小,不到2000,这样就是为了避免重复掉别人接口耗费时间,再有就是一旦上传了新的文件,this.hashCode会变,这时候正好调别人系统接口获取最新的数据。 有个问题就是我这个全局map会越来越大,应该不会被回收吧,所以想着用redis存30分钟就够了,然后每次从redis取值,但是可能要取个几十万次以上,虽然操作的是redis,但是这样频繁去取,这里需要考虑io,麻烦老师解答下,谢谢