I’m not a big fan of Annotations in Java. I’m realizing this more and more. I mean, spring boot is a nice technology, it’s really development on steroids as it allows you to flesh out logic really quick. But one of the mechanisms that allows it to do that is by using reflections and simply scanning available Jars. You can import a new dependency in your project, and the application will find that file and start executing logic from it, without you writing a single line of code. And this is bad.
Why? Because it means you can’t easily read your code to understand everything that is happening. You theoretically need to have an undestanding of all of your imported libraries to understand what your application is doing. That means you are dealing with unknown unknowns.