- Instead of injecting `AbstractMappingMessageRouter[]`, inject it as a container
type using `List<>`. This is because the former uses reflection behind the scenes
and causes issues with graal native compilation (unless provided as a native hint).
- Instead of autowiring `Map<String, BindingTargetFactory>` in
`AbstractBindableProxyFactory`, programmatically populate `BindingTargetFactory`
beans by doing a `BeanFactory` lookup in a new method. Then the subclasses of
`AbstractBindableProxyFactory` call this method to pouplate the avaialble
`BindingTargetFactory` beans in their `afterPropertiesSet` method.
- Convert array injection of `BindableProxyFactory[]` in functionInitailzer bean
in `FunctionConfiguration` to use container based injejction (`List<>`).
- Cleanup unused injection in functionInitializer bean in `FunctionConfiguration`.
Resolves https://github.com/spring-cloud/spring-cloud-stream/issues/2154Resolves#2155