我对Spring集成非常陌生,并试图找出如何返回数据流,但找不到任何示例。我找到了关于ByTestStreamWritingMessageHandler的文档,但对我来说似乎有点模糊,并且没有提供使用示例(除了bean定义)。我假设我需要定义一个使用ByTestStreamWritingMessageHandler的通道,并在入站网关中引用它(通过回复通道),但我有一些问题:
首先,我说得对吗?我可以使用默认频道类型吗?我需要通道适配器吗?我可以从我的服务方法返回ByteArrayOutputStream吗?频道定义是什么样子的?
任何帮助都将不胜感激。
---------------更新-----------
我们当前的endpoint是这样结构的:
<int:channel id="httpReplyChannel"/>
<int:channel id="exampleService.exampleMethod"/>
<int-http:inbound-gateway path="/example"
supported-methods="POST"
request-channel="exampleService.exampleMethod"
request-payload-type="java.lang.Integer"
reply-channel="httpReplyChannel"
message-converters="jsonMessageConverter"
mapped-request-headers="*"/>
<int:service-activator input-channel="exampleService.exampleMethod"
ref="exampleService"
method="exampleMethod"/>
因此,我们使用两个通道,一个用于入站,一个用于出站,并使用http:inbound网关的reply channel属性来配置出站通道。我希望遵循相同的模式,但创建一个新的出站通道。我的问题是,我不确定哪种类型的通道最适合返回流。endpoint将直接向浏览器返回包含图像的a流(浏览器将通过HTML img标记发出请求)。因此,我需要exampleMethod返回一个流(ByteArrayOutputStream),并且需要能够根据返回的图像类型访问动态设置的头文件。
如果您说希望通过http入站适配器接收请求,并以某种方式打开一个流以输出多个数据,那么,不,这是当前不支持的。
Spring集成主要是一个消息传递框架,而不是流式框架。
您所引用的流适配器用于简单的单向集成。
所有网关都是严格要求/响应的。有某些适配器(如tcp)可以执行这种流式传输(使用协作的入站/出站适配器),但http空间中目前没有任何内容(尽管我们目前正在研究一些将来将支持这种传输的技术)。
编辑:回应下面的第一条评论
该问题/答案不是流式输出,而是在响应属性中返回
字节[]
。如果您想这样做,只需返回一条带有字节[]
有效负载(以及相应的内容类型标题)的消息。
如果您真的希望您的服务获得对响应输出流的引用,不,您不能使用标准超文本传输协议网关做到这一点。但是,您可以使用一个简单的servlet/控制器并注入一个
public interface MyInterface {
String foo(@Payload String request, @Header("stream") OutputStream stream);
}
使用
service activator
具有expression=“@fooService.bar(有效负载,头['stream'])”
。
Spring + Mybatis 整合 本章节主要是介绍如何使用Spring + Mybatis 框架整合构建项目。 Spring-mybatis整合官方文档地址 http://www.mybatis.org/spring/zh/ 本教程的代码已经存放在code.aliyun.com上面 . 可以clone到本地 . 项目地址 : https://code.aliyun.com/lemypyl/s
1.导入jar包 web.xml spring-security.xml
主要内容:引入依赖,配置 MyBatis,创建实体类,创建 Mapper 接口,创建 Mapper 映射文件,示例 1,注解方式MyBatis 是一个半自动化的 ORM 框架,所谓半自动化是指 MyBatis 只支持将数据库查出的数据映射到 POJO 实体类上,而实体到数据库的映射则需要我们自己编写 SQL 语句实现,相较于Hibernate 这种完全自动化的框架,Mybatis 更加灵活,我们可以根据自身的需求编写 sql 语句来实现复杂的数据库操作。 随着 Spring Boot 越来越流行
Spring Boot 推荐使用 Thymeleaf 作为其模板引擎。SpringBoot 为 Thymeleaf 提供了一系列默认配置,项目中一但导入了 Thymeleaf 的依赖,相对应的自动配置 (ThymeleafAutoConfiguration) 就会自动生效,因此 Thymeleaf 可以与 Spring Boot 完美整合 。 Spring Boot 整合 Thymeleaf 模板
1、maven 坐标 Spring 整合可以在pom.xml中配置 jfinal 坐标,也可以配置 Enjoy Template Engine 的独立发布版本坐标,其 maven 坐标如下: <dependency> <groupId>com.jfinal</groupId> <artifactId>enjoy</artifactId> <version>4.9.08</version
一、前言 使用 Spring+Mybatis 操作 Phoenix 和操作其他的关系型数据库(如 Mysql,Oracle)在配置上是基本相同的,下面会分别给出 Spring/Spring Boot 整合步骤,完整代码见本仓库: Spring + Mybatis + Phoenix SpringBoot + Mybatis + Phoenix 二、Spring + Mybatis + Phoeni