Reputation: 41
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