Move to class configuration in spite of XML configuration.
For those unfamiliar with @Configuration classes, you can think of them as a pure-Java equivalent to Spring <beans/> XML files. Since Spring 3.1 the @Configuration approach provides a truly first-class option for those who wish to configure their applications without XML.
Spring Boot is well suited for web application development:
- It makes it easy to create stand-alone, production-grade Spring based Applications.
- It favors Java-based configuration. It generally recommends that your primary source is a @Configuration class.
- Spring Boot auto-configuration attempts to automatically configure your Spring application based on the jar dependencies that you have added.
- Auto-configuration is noninvasive, at any point you can start to define your own configuration to replace specific parts of the auto-configuration.
- You are free to use any of the standard Spring Framework techniques to define your beans and their injected dependencies.
- It allows you to externalize your configuration so you can work with the same application code in different environments.
- Spring Profiles provide a way to segregate parts of your application configuration and make it only available in certain environments.
- Spring Boot uses Commons Logging for all internal logging, but leaves the underlying log implementation open.
- If Spring Security is on the classpath then web applications will be secure by default with ‘basic’ authentication on all HTTP endpoints.
- If you work in a company that develops shared libraries, or if you work on an open-source or commercial library, you might want to develop your own auto-configuration. Auto-configuration classes can be bundled in external jars and still be picked-up by Spring Boot.
- Spring Boot includes a number of additional features to help you monitor and manage your application when it’s pushed to production.