Similar to #15955, it would be useful in the context of #15704 for a SpringApplicationRunListener not to have to have a particular constructor.
Rather than passing SpringApplication and the String[] of arguments into the constructor, they should be made available via a method or methods on an interface. This will allow run listeners to be plugged in and configured using a general purpose extension mechanism without the use of reflection. Rather than passing in the String[], we could also consider passing in ApplicationArguments instead.
If we do this, we'll need to try and do it in a way that's backwards compatible.
Comment From: wilkinsona
We discussed this today and decided that we’d prefer to provide an abstraction that is specifically designed for resolving application run listeners.
Comment From: wilkinsona
It's not clear that the benefits on offer here justify the time it'll take to implement. The opportunity cost is too high at the moment.
Comment From: wilkinsona
The benefits remain unclear. Closing for now at least.