I integrated AWS SES API to my Micronaut Groovy application using guide send mail in micronaut and I am able send mails if I directly assign values to properties.
I want to make it config driven hence have been trying to find ways to achieve that.
I tried @Value annotation as mentioned in guide but was not able to make it work.
@Value("aws.secretkeyid")
String keyId
Further digging into documentation revealed that Micronaut has its own annotation for injecting properties in variables.
@Property(name="aws.secretkeyid")
String keyId
But nothing seems to work, my variables are still null.
What could be possibly wrong here ?
For reference, following is in my application.yml file
aws:
keyid: "2weadasdwda"
secretkeyid: "abcdesdasdsddddd"
region: "us-east-1"
Step 1 − After creating an executable JAR file, run it by using the command java –jar <JARFILE>. Step 2 − Use the command given in the screenshot given below to change the port number for Spring Boot application by using command line properties.
How does Micronaut work? Micronaut is designed to function as both a client and server framework. The framework features an annotation-based programming model that is very similar to the Java Spring framework. Unlike the Spring framework, however, Micronaut does not use Java Reflection APIs.
You are using it incorrectly, you are injecting the literal value aws.secretkeyid
, not the value of a variable.
The correct syntax is (Groovy):
@Value('${aws.secretkeyid}')
String keyId
Notice that you must use single quotes to avoid Groovy to attempt interpolation
Java:
@Value("${aws.secretkeyid}")
String keyId;
Kotlin:
@Value("\${aws.secretkeyid}")
keyId: String
Notice that you must use a backslash to escape the dollar sign to avoid Kotlin string templates
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With