'@ServiceActivator How to read inputChannel from property file in spring boot?

i develop google pubsub consumer and when i use fix value "my-alpha-pubsub-topic" it's complete running

@ServiceActivator(inputChannel = "my-alpha-pubsub-topic" )
 public void messageReceiver(String payload) {
  LOGGER.info("Message arrived! Payload: " + payload);

 }

But i run it on Container in Kubernetes i need pass inputChannel value from env parameter by Environment for 1 container build support multiple environment

Alpha => inputChannel = "my-alpha-pubsub-topic"
Staging => inputChannel = "my-staging-pubsub-topic"
Production => inputChannel = "my-pubsub-topic"

Buy i cannot pass parameter in inputChannel. it's run failed

@Value("${pubsub.name}")
 private String pubsubName;


@ServiceActivator(inputChannel = "${pubsubName}" )
 public void messageReceiver(String payload) {
  LOGGER.info("Message arrived! Payload: " + payload);

 }

and i Try this and Failed

@ServiceActivator(inputChannel = "${pubsubName}" ) 
@ServiceActivator(inputChannel = "#{${pubsubName}}" )
@ServiceActivator(inputChannel = "${pubsub.name}" )

How i can pass value to inputChannel from properties or env parameter



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source