I found a similar post @Autowired bean is null when referenced in the constructor of another bean .
The root cause of the error can be explained in the Spring reference doc (Autowired) , as follow:
Autowired Fields
Fields are injected right after construction of a bean, before any config methods are invoked.
But the real reason behind this statement in Spring doc is the Lifecycle of Bean in Spring. This is part of Spring's design philosophy.
This is Spring Bean Lifecycle Overview: Bean needs to be initialized first before it can be injected with properties such as field. This is how beans are designed, so this is the real reason.
I hope this answer is helpful to you!