如何使用 ModuleConfiguration.java 配置 Spring XD 模块?
How to configure Spring XD modules using ModuleConfiguration.java?
我创建了一个 Spring XD 模块,类似于示例推文转换器。 Spring 文档说您可以使用 src/main/resources/config/
下的 spring-module.properties
和 spring-module.xml
配置或定义 Bean 的专用 ModuleConfiguration.java
文件。但是,如果我只使用后者,则不会 运行。 XD 抱怨无法确定模块类型。
如果我添加 spring-modules.properties
和模块 xml,它就可以工作。我的 ModuleConfiguration.java
看起来像这样:
package mypackage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.channel.DirectChannel;
import org.springframework.integration.config.EnableIntegration;
import org.springframework.messaging.MessageChannel;
@Configuration
@EnableIntegration
public class ModuleConfiguration {
@Bean
MessageChannel input() {
return new DirectChannel();
}
@Bean
MessageChannel output() {
return new DirectChannel();
}
@Bean
MyTransformer transformer() {
return new MyTransformer();
}
}
我的pom.xml继承自spring模块pom:
<parent>
<groupId>org.springframework.xd</groupId>
<artifactId>spring-xd-module-parent</artifactId>
<version>1.3.0.RELEASE</version>
<relativePath/>
</parent>
变形金刚看起来像这样:
package mypackage;
import org.springframework.integration.annotation.MessageEndpoint;
import org.springframework.integration.annotation.Transformer;
@MessageEndpoint
public class MyTransformer
{
@Transformer( inputChannel = "input", outputChannel = "output" )
public String transform( String payload )
{
return "Test";
}
}
在您的 src/main/resources/config/spring-modules.properties
中添加以下内容。
base_packages=mypackage
这将使 ModuleConfiguration 能够被 Spring XD 引擎拾取,进而加载您的自定义转换器 MyTransformer
。
其他一切看起来都不错。
我创建了一个 Spring XD 模块,类似于示例推文转换器。 Spring 文档说您可以使用 src/main/resources/config/
下的 spring-module.properties
和 spring-module.xml
配置或定义 Bean 的专用 ModuleConfiguration.java
文件。但是,如果我只使用后者,则不会 运行。 XD 抱怨无法确定模块类型。
如果我添加 spring-modules.properties
和模块 xml,它就可以工作。我的 ModuleConfiguration.java
看起来像这样:
package mypackage;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.channel.DirectChannel;
import org.springframework.integration.config.EnableIntegration;
import org.springframework.messaging.MessageChannel;
@Configuration
@EnableIntegration
public class ModuleConfiguration {
@Bean
MessageChannel input() {
return new DirectChannel();
}
@Bean
MessageChannel output() {
return new DirectChannel();
}
@Bean
MyTransformer transformer() {
return new MyTransformer();
}
}
我的pom.xml继承自spring模块pom:
<parent>
<groupId>org.springframework.xd</groupId>
<artifactId>spring-xd-module-parent</artifactId>
<version>1.3.0.RELEASE</version>
<relativePath/>
</parent>
变形金刚看起来像这样:
package mypackage;
import org.springframework.integration.annotation.MessageEndpoint;
import org.springframework.integration.annotation.Transformer;
@MessageEndpoint
public class MyTransformer
{
@Transformer( inputChannel = "input", outputChannel = "output" )
public String transform( String payload )
{
return "Test";
}
}
在您的 src/main/resources/config/spring-modules.properties
中添加以下内容。
base_packages=mypackage
这将使 ModuleConfiguration 能够被 Spring XD 引擎拾取,进而加载您的自定义转换器 MyTransformer
。
其他一切看起来都不错。