I have an optional dependency to listener beans in one of my beans. That means that I could have any number of listeners in my Application context.
I have tried to annotate my bean the following way:
IMO it is intuitive that Spring will
1. Search for Listener beans only when accessed
2. Do not crash if no Listener bean is defined in the context, namely return an empty list
I don't know if this is a bug in 4.3.5 or is it just how Spring is designed, but the above code, when no Listener bean is defined, crashes instead of returning an empty list when I try to access the listeners object.
If I use eager initialization, Autowired's required=false injects an empty list. I expected similar behaviour for lazy lists.
This ticket is:
- MINOR because I can workaround this issue by using eager initialization, for the mometn
- IMPROVEMENT because I have found no documentation on whether it is a design choice or an implementation issue
My container bean's afterPropertiesSet does
Instead of logging 0, the application crashes with the following stack trace
Before submitting a test case, I'd first like to be clarified what is the expected Spring's behaviour in such situation
I have reviewed Spring docs on Lazy. The javadoc does not cite the case of optional Collection-dependencies