我们假设我们有这样的网络服务:
//此代码取自堆栈溢出问题
@Autowired
private Service service;
@GET
@Produces(MediaType.TEXT_PLAIN)
public Response streamExample() {
StreamingOutput stream = service.getStream();
return Response.ok(stream).build();
}
服务类:
public class Service{
public StreamingOutput getStream(){
log.info("Going to start Streaming");
StreamingOutput stream = new StreamingOutput() {
@Override
public void write(OutputStream os) throws IOException,
WebApplicationException {
Writer writer = new BufferedWriter(new OutputStreamWriter(os));
writer.write("test");
log.info("Inside streaming.");
writer.flush();
}
};
log.info("Finished streaming.");
return stream;
}
}
日志文件中的输出是: 要开始流式传输。 完成流媒体。 内部流媒体。
我想问两个问题: 1.是否创建了一个新线程来为每个请求流式传输输出? 2.如果有一个hibernate查询,我想在流输出的write方法中运行,如何将会话关联到该线程?