What is meant by Spring boot follows “Opinionated Defaults Configuration” Approach?

Spring Boot just decides on a set of default configured beans which you can override if you want.

For example if you include the spring boot starter pom for jpa, you'll get autoconfigured for you an in memory database, a hibernate entity manager, and a simple datasource. This is an example of an opinionated (Spring's opinion that it's a good starting point) default configuration that you can override.

See https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-replacing-auto-configuration


Spring Boot, is Spring on steroids if you will. It's a great way to get started very quickly with almost the entire Spring stack. I'll try to summarize as what "Opinionated Defaults Configuration" would mean in practice from a programmer's perspective below:

  1. Helps you to setup a fully working application(web app or otherwise) very quickly by providing you intelligent default configurations that you are most likely to be satisfied to start with.

  2. It does so by something called "AutoConfiguration", where capabilities from the Spring ecosystem of products are "auto-magically" enabled in your application by adding certain dependencies to your classpath; adding such dependencies via maven or gradle is super easy.

  3. Most auto-configuration respects your own configuration, and backs off silently if you have provided your own configuration via your own beans.

  4. You would benefit most if you take the java config approach of configuring your Spring application.

  5. Super silky integration of new capabilities in your application by developing your own auto-configuration components (via annotations!).

  6. Tons of auto-configaration components available ranging from Databases(h2, derby etc.), servlet containers(tomact, jetty etc.) to email and websockets are available. It is easy to develop your own. The important thing is that others can use those technology enablements in their own components. Please feel free to contribute.

  7. Helps write very clean code with all the heavy lifting taken care of you, so that you can focus more on your business logic.

Hope you have fun with Spring Boot; its absolutely among the very best of frameworks to have hit the market in the last decade or so.