IV.4 Solution Strategy
At the core of biking2 is a simple yet powerful domain model based on a few entities, of which a "Bike" and its "Milage" are the most important.
Although data-centric, the application refrains from using too much SQL to create reports, summaries, and so on, but tries to achieve that with new Java 8 features related to streams, lambdas, and map/reduce functions.
Building the application with Spring Boot is an obvious choice as one of the main quality goals is learning about it. Furthermore, using Spring Boot as a "framework" for Spring Framework allows us to concentrate on the business logic. On the one hand, there is no need to understand a complex XML configuration, while on the other, all of the building blocks are still put together using dependency injection.
Regarding dependency injection and testability, all injection should be done via constructor injection; setter injection is only allowed when there's no other technical way...