Sample app: https://github.com/snicoll-demos/spring-boot-master-auto-configuration
Are you wondering how Spring Boot is actually working in the inside? No black magic here, but standard mechanisms to register beans according to the environment. Spring Boot supports many use cases already and it can also be extended to support your own! In this talk we are going to create a starter step by step (dependencies management, auto-configuration management, customization through dedicated keys, testing, etc). You can take this home and apply that to your own components; this will bring standard auto-configuration for your components with the ability to reconfigure that default behaviour if need to be.