我有一个场景,我需要将文件的内容从 DB 直接流式传输到客户端浏览器。
所以我使用普通的 jdbc rs.getBlob()
,然后blob.getBinaryStream();
写入一个 http 输出流。
我注意到(一件非常好的事情)是,一旦我通过 blob 获得输入流,数据库连接就会重新调整到数据源池。(网络逻辑)
现在我问你,我的观察是否正确?因为我担心对于需要很长时间的下载,数据库连接将停留在请求上以便能够流式传输文件。
显然,一旦开始流式传输,就不再使用数据库连接。
将在这里模拟一些代码以便更好地理解
@Trasactional
public void InputStream getIsFromBlob(....){
....
is = blob.getBinaryStream();
...
return is;
}
后来这个方法被用在一个servlet中,比如说在http输出流中写下is的contect
谢谢