Pranesh Radhakrishnan
Pranesh Radhakrishnan

Reputation: 41

Groovy dsl dependency injection

I am running a spring boot app with aws dependencies (in java), and I have a requirement to build dsl. So i used groovy to build dsl and trying to understand how we can inject autowired beans in dsl method.

dsl: 

  sendNotification{
    topic 'topic'
    payload 'payload'
    send()
  }
Groovy (src/main/groovy)

class SNSDsl{
  String topic
  String payload
  void topic(String topic)
    this.topic = topic
  }
  void payload(String payload) {
    this.payload = payload
  }

  void send(){
    // need to call SNSService sendNotification method
  
  }

}

src/main/java 

@Named
public class SNSService {
  private final SnsOperations snsOperations;
  SNSService (SnsOperations snsOperations){
    this.snsOperations = snsOperations;
  }
  public void sendNotification(final String payload, final String topic) {
        SnsNotification<String> notification = SnsNotification.builder(payload)
                .build();
        snsOperations.sendNotification(topic, notification);
    }

}

Upvotes: 0

Views: 68

Answers (0)

Related Questions