【问题标题】:Can I use Spring integration modules in my Spring boot application?我可以在我的 Spring Boot 应用程序中使用 Spring 集成模块吗?
【发布时间】:2018-05-02 02:38:43
【问题描述】:
我正在尝试为我的 ftp 服务器创建一个文件下载端点。我看到有一个用于 Spring Boot 的 Spring Boot 集成启动模块,但该模块不包含像 DefaultFtpSessionFactory 这样的类。我在网上看到还有其他可用的模块,例如 Spring 集成 http 和 Spring 集成 ftp。但是,这些不是 Spring Boot 模块。无论如何将这些模块包含在我的 POM 中是否可以节省?或者我不应该首先使用 Spring Boot Starter 集成吗?
我在这个例子中看到:https://blog.pavelsklenar.com/spring-integration-sftp-upload-example/ 作者在 Spring Integration 4.3.8 常规 Spring 旁边使用 Spring Boot。他确实说这些是由 Spring Boot 管理的,但我不确定他的意思。
如果我想制作下载功能,谁能告诉我应该包含哪些模块?谢谢
【问题讨论】:
标签:
java
spring-boot
spring-integration
【解决方案1】:
由于应用程序不太可能需要所有 Spring Integration 模块(ftp、sftp、http、mqtt、...等),因此启动器仅在类路径中包含 core 和 java dsl jar(在 Spring Integration 5.0 中, DSL 是内置的,所以 boot 2.0 只包含核心 jar)。
否则,您最终会在类路径中得到许多您不需要的 jar。
所以,是的,您必须手动添加所需的依赖项...
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-ftp</artifactId>
</dependency>
请注意,您不需要需要<version/> - boot 会为您管理它并引入与核心相对应的正确版本。
模块本身会带来他们需要的任何额外的传递依赖。因此,您只需将顶级模块添加到您的 pom 中。