如何在Annotation中转换Spring Integration应用程序



我是Spring Integration的新手,我已经完成了一个示例应用程序。但是我使用XML进行配置。我想使用注释并执行相同的应用程序。提前感谢您的帮助。

下面是我的配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-http="http://www.springframework.org/schema/integration/http"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/http
http://www.springframework.org/schema/integration/http/spring-integration-http.xsd">

<!-- CHANNEL -->
<int:channel id="requestChannel" />
<int:channel id="outputChannel" />
<int-http:inbound-gateway request-channel="requestChannel"
reply-channel="outputChannel" supported-methods="GET"
path="/welcome/{name}" payload-expression="#pathVariables.name">
<int-http:request-mapping consumes="application/json" produces="application/json" />
</int-http:inbound-gateway>
<int:service-activator ref="welcomeEndpoint"
method="get" input-channel="requestChannel" output-channel="outputChannel" />

以下是的服务级别

@Component
public class WelcomeEndpoint {
private Logger log = LoggerFactory.getLogger(this.getClass().getName());
public Message<?> get(Message<String> msg) {
String name = msg.getPayload();
// Log
log.info("Request with name = " + name);
// Get currentTime
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
LocalDateTime now = LocalDateTime.now();
String currentTime = dtf.format(now);
String strMsg = "Hello " + name + "! " + "Welcome to Spring Integration with Spring Boot!";
HelloMsg returnMsg = new HelloMsg(strMsg, currentTime);
return MessageBuilder.withPayload(returnMsg)
.copyHeadersIfAbsent(msg.getHeaders())
.setHeader("http_statusCode", HttpStatus.OK)
.build();
}

}

POJO

public class HelloMsg {
private String msg;
private String currentTime;
public HelloMsg(){}
public HelloMsg(String msg, String currentTime){
this.msg = msg;
this.currentTime = currentTime;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getCurrentTime() {
return currentTime;
}
public void setCurrentTime(String currentTime) {
this.currentTime = currentTime;
}

}

Spring Boot应用程序类

@SpringBootApplication
@ImportResource("classpath:integration.xml")
public class SpringIntegrationApplication {
public static void main(String[] args) {
SpringApplication.run(SpringIntegrationApplication.class, args);
}

}

请参阅参考手册Java DSL,Finding class Names for Java and DSL Configuration and annotation support。

最新更新