Spring控制器方法需返回String或SseEmitter时,应指定何种返回类型?
Spring控制器方法返回String或SseEmitter的返回类型选择
你可以把方法的返回类型指定为Object,Spring MVC会自动根据实际返回的对象类型来处理响应:
@GetMapping("/test") public Object test() { if (MyCondition) { SseEmitter emitter = new SseEmitter(); // 填充SseEmitter数据的逻辑 return emitter; } else { return "String"; } }
为什么可以这么做?
Spring MVC的请求处理器支持灵活的返回类型,当方法返回Object时,框架会:
- 如果返回的是
String,会将其作为文本响应返回(默认UTF-8编码,Content-Type为text/plain) - 如果返回的是
SseEmitter,会自动触发服务器发送事件(SSE)的处理流程,保持连接并发送事件数据
进阶方案:用ResponseEntity
相关产品推荐
相关产品推荐

