如何使用属性中的 Spring @MessageMapping 来设置注释属性
How to use a Spring @MessageMapping from properties to set an annotation attribute
我正在使用 SQS spring-boot:spring-cloud,
我想外部化参数,根据活动配置文件检索值
@MessageMapping("static.queue")
public void receiveMessage(Payload payload) {
// ...
}
有什么办法可以解决这个问题吗?
类似
@MessageMapping("${properties.dynamic}")
public void receiveMessage(Payload payload) {
// ...
}
我会尝试两种选择:
- 使用项目
spring-could-aws
。您可以使用 @SqsAnnotation
注释您的 SQS 队列侦听器。
- 使用JMS 接口访问SQS 队列。在这种情况下,您可以使用 plain Spring JMS features(例如
@JmsListener
)。
- @MessageMapping 支持 MessageMapping 注释中的表达式:
public class 示例 {
@MessageMapping("${spring.app}")
public void receiveMessage(Payload payload) {
// do
}}
在 yml 文件中:
spring:
profiles: prod
app: 'queueName1'
spring:
profiles: dev
app: 'queueName2'
我正在使用 SQS spring-boot:spring-cloud, 我想外部化参数,根据活动配置文件检索值
@MessageMapping("static.queue")
public void receiveMessage(Payload payload) {
// ...
}
有什么办法可以解决这个问题吗?
类似
@MessageMapping("${properties.dynamic}")
public void receiveMessage(Payload payload) {
// ...
}
我会尝试两种选择:
- 使用项目
spring-could-aws
。您可以使用@SqsAnnotation
注释您的 SQS 队列侦听器。 - 使用JMS 接口访问SQS 队列。在这种情况下,您可以使用 plain Spring JMS features(例如
@JmsListener
)。 - @MessageMapping 支持 MessageMapping 注释中的表达式:
public class 示例 {
@MessageMapping("${spring.app}")
public void receiveMessage(Payload payload) {
// do
}}
在 yml 文件中:
spring:
profiles: prod
app: 'queueName1'
spring:
profiles: dev
app: 'queueName2'