0Pricing
Spring Boot 4 Microservices & REST APIs · Lektion

Profile für Umgebungen

Wechseln Sie die Konfiguration je nach Umgebung mit Profilen.

Profile für Umgebungen ist eine kostenlose Spring Boot 4 Microservices & REST APIs-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Spring Boot 4 Microservices & REST APIs-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Spring Boot 4 Microservices & REST APIs-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

Why Profiles Exist

Real applications run in several environments — local, dev, staging, production — each needing different datasources, log levels, and feature toggles. Profiles let one codebase carry many configurations and activate the right set at runtime.

A profile is just a named label. Beans and property files can be tagged so they apply only when that profile is active.

Profile-Specific Property Files

Boot automatically loads application-{profile}.yml on top of the base application.yml. The profile file overrides matching keys while inheriting everything else.

# application.yml (base, always loaded)
spring:
  jpa:
    show-sql: false

# application-dev.yml (loaded when dev active)
spring:
  jpa:
    show-sql: true
  datasource:
    url: jdbc:h2:mem:devdb

Activating a Profile

Set spring.profiles.active to choose which profiles run. You can do this in a file, as an environment variable, or on the command line.

# Command line
java -jar app.jar --spring.profiles.active=prod

# Environment variable
export SPRING_PROFILES_ACTIVE=prod

# Multiple profiles
java -jar app.jar --spring.profiles.active=prod,metrics

Conditional Beans with @Profile

@Profile on a bean or configuration class makes it register only when that profile is active. This is ideal for swapping implementations between environments.

@Configuration
public class PaymentConfig {
    @Bean
    @Profile("prod")
    public PaymentGateway liveGateway() {
        return new StripeGateway();
    }

    @Bean
    @Profile("!prod")
    public PaymentGateway fakeGateway() {
        return new InMemoryGateway();
    }
}

Profile Expressions

The @Profile value supports simple logic: ! for NOT, & for AND, and | for OR. Group expressions with parentheses.

@Profile("!prod")                // anything except prod
@Profile("prod & metrics")       // both active
@Profile("dev | test")           // either active
@Profile("prod & (eu | us)")     // grouped

The Default Profile

When no profile is active, Spring enables the implicit default profile. You can target it explicitly with @Profile("default") for fallback beans used during plain local runs.

@Bean
@Profile("default")
public DataSeeder localSeeder() {
    return new SampleDataSeeder();
}

Profile Groups

A profile group bundles several profiles under one name, so activating the group activates them all. Great for composing cross-cutting concerns.

spring:
  profiles:
    group:
      production:
        - prod
        - metrics
        - swagger-off
# Now: --spring.profiles.active=production turns on all three

Including Profiles

spring.profiles.active sets the primary profiles, while spring.profiles.include adds extra ones unconditionally, regardless of which primary profile is selected.

spring:
  profiles:
    include:
      - common-logging
      - audit

Inspecting Active Profiles at Runtime

You can read active profiles from the Environment bean. This is useful for guard logic or for logging which configuration is live.

@Component
public class StartupLogger {
    private final Environment env;
    public StartupLogger(Environment env) { this.env = env; }

    @PostConstruct
    void log() {
        System.out.println("Active: "
            + String.join(",", env.getActiveProfiles()));
    }
}

Profiles in Tests

In integration tests, annotate the class with @ActiveProfiles to force a specific configuration, such as an in-memory database profile.

@SpringBootTest
@ActiveProfiles("test")
class OrderServiceTest {
    // loads application-test.yml + @Profile("test") beans
}

Common Pitfalls

Watch for these mistakes:

  • Forgetting to set spring.profiles.active in production, so dev defaults leak in
  • Putting secrets in application-dev.yml and committing it
  • Overusing @Profile where a simple property toggle would do

Quick Check

Test your grasp of profile expressions.

Recap

Profiles tailor one codebase to many environments.

  • application-{profile}.yml overrides base config
  • Activate via spring.profiles.active (file, env var, or CLI)
  • @Profile conditionally registers beans, with !, &, | expressions
  • Profile groups bundle related profiles
  • Use @ActiveProfiles in tests

Häufig gestellte Fragen

Ist die Lektion „Profile für Umgebungen“ kostenlos?

Ja — der vollständige Text von „Profile für Umgebungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Spring Boot 4 Microservices & REST APIs-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Spring Boot 4 Microservices & REST APIs-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Profile für Umgebungen“?

Wechseln Sie die Konfiguration je nach Umgebung mit Profilen. Du übst Spring Boot 4 Microservices & REST APIs mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Spring Boot 4 Microservices & REST APIs zu starten?

Keine Vorkenntnisse erforderlich. Spring Boot 4 Microservices & REST APIs auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Profile für Umgebungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Spring Boot 4 Microservices & REST APIs-Lektion Code schreiben und ausführen?

Ja. Jede Spring Boot 4 Microservices & REST APIs-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. application.properties und YAML
  2. Profile für Umgebungen
  3. Typsichere Konfiguration mit @ConfigurationProperties
  4. Externe und überschreibbare Konfiguration
← Zurück zu Spring Boot 4 Microservices & REST APIs