https://medium.com/@AlexanderObregon/spring-boot-conditionalonmissingbean-annotation-explained-6005c2d50d31