StreamingOutput是否会产生一个新线程来写入输出流?

时间:2014-11-26 00:21:58

标签: cxf jax-rs

我们假设我们有这样的网络服务:

//此代码取自堆栈溢出问题

@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方法中运行,如何将会话关联到该线程?

0 个答案:

没有答案