摘要
在springbatch内部使用:java8、apachehttpclient(我想是4.5.11)。
细节:
应用程序使用
BufferedInputStream
环绕返回的输入流
HttpEntity
. 我们只需要文件的头(来决定在哪里委托它的处理),所以spring批处理步骤就不再读了。然而,当spring的整个实现在调试结束时会显示出底层的流。这是非常不必要的(需要很长时间,可能会导致工作不完整)。
HttpEntity公司
EofSensorInputStream
class AbortableBufferedInputStream extends BufferedInputStream {
InputStream input;
AbortableBufferedInputStream(InputStream in, int bufferSize) {
super(in, bufferSize);
input = in;
}
@Override public void close() {
if (input instanceof EofSensorInputStream) {
((EofSensorInputStream) input).abortConnection();
}
}
}
这看起来不太聪明,所以我想:
-
以上链接中的文档中是否解释了这种行为(可能我不明白)
-
有没有更正确的方法来防止不必要的获取整个文件?