Spring Boot helps you build Java applications fast. It removes a lot of manual setup. You write less configuration and more business logic.


What is Auto-Configuration?

Auto-configuration means:

Spring Boot automatically configures your app based on what it finds in your project.

It checks:

  • Your dependencies (libraries)
  • Your settings (application.properties / yaml)

Then it decides what to create and configure.


Example

@SpringBootApplication

public class App {

    public static void main(String[] args) {

        SpringApplication.run(App.class, args);

    }

}


What Gets Auto-Configured?

1. Web Server (Tomcat)

If you add:

spring-boot-starter-web

Spring Boot will:

  • Start an embedded Tomcat server
  • Set default port (8080)
  • Configure basic web setup
  • No need to install Tomcat manually.

2. Dispatcher Servlet (Spring MVC)

Spring Boot auto-configures:

  • DispatcherServlet
  • Request mapping
  • JSON handling (via Jackson)

Example controller:

@RestController

public class HelloController {

    @GetMapping(„/hello“)

    public String hello() {

        return „Hello“;

    }

}


3. DataSource (Database)

If you add:

spring-boot-starter-data-jpa dependency in your project

And configure:

spring.datasource.url=jdbc:mysql://localhost:3306/test

spring.datasource.username=user

spring.datasource.password=pass

Spring Boot will:

  • Create a DataSource
  • Configure connection pool
  • Setup Hibernate / JPA

     – No manual beans required.


4. Entity Manager / JPA

Automatically configured with default values. You can also configure it in application yaml/properties:

  • EntityManager
  • Transaction management
  • Hibernate settings

5. Jackson (JSON)

Spring Boot auto-configures:

  • JSON serialization/deserialization
  • Converts objects ↔ JSON automatically

6. Logging

Out of the box:

  • Logging framework initialized
  • Default log format
  • No setup needed

7. Configuration Properties

Spring Boot auto-binds properties:

server.port= 9090

– Changes server port without code.


How Does It Decide?

Spring Boot uses:

  • @Conditional rules
  • Classpath detection

Example:

  • If MySQL driver is present → configure DataSource
  • If web dependency exists → configure web app

Can You Override?

Yes

You can:

  • Add your own configuration
  • Override defaults

Example:

@Bean

public DataSource customDataSource() {

    // your config

}


Summary

  • Spring Boot reduces setup
  • Auto-config creates common components
  • You focus on business logic

      Key idea: “Convention over configuration”

Kommentar verfassen

I’m Iman

Mein Name ist Iman Dabbaghi. Ich arbeite als Senior Software Engineer in der Schweiz. Außerdem interessiere ich mich sehr für gewaltfreie Kommunikation, Bachata-Tanz und Musik sowie fürs die Persönlichkeitsentwicklung.

Ich habe einen Masterabschluss in Informatik von der Universität Freiburg in Deutschland, bin Spring/Java Certified Professional (OCP), Certified Professional for Software Architecture (CPSA-F) und ein lebenslanger Lernender 🎓.

EN:

My name is Iman Dabbaghi. I work as a Senior Software Engineer in Switzerland. I am also very interessted in nonviolent communication, Bachata dance and music and also for personal development.

I hold a masters degree in computer science from the university of Freiburg in Germany, am a Spring / Java Certified Professional (OCP), Certified Software Architecture (CPSA-F) and Life Long Learner🎓

Let’s connect