Spring Boot externaliseert configuratie zodat dezelfde jar in elke omgeving draait. Je zet instellingen in application.yml (of .properties), leest ze in je code, en schakelt gedrag per omgeving met profiles.
application.yml en @Value
Spring Boot externaliseert configuratie zodat dezelfde jar in elke omgeving draait. Je zet instellingen in application.yml (of .properties), leest ze in je code, en schakelt gedrag per omgeving met profiles.
@Component
public class SearchService {
// Injecteer één property; :20 is de fallback als hij ontbreekt.
@Value("${app.page-size:20}")
private int pageSize;
}
Voor alles voorbij één of twee waarden bind je een getypeerd object in plaats van @Value te verspreiden:
@Component
@ConfigurationProperties(prefix = "app") // bindt app.* in deze velden
public class AppProps {
private int pageSize;
private Map<String, Boolean> featureFlags;
// getters/setters — Boot relaxed-bindt page-size -> pageSize
}
Dit geeft je type safety, IDE-autocomplete en validatie (voeg @Validated + constraints toe).
spring:
config:
activate:
on-profile: prod # alleen wanneer 'prod' actief is
server:
port: 80
Bestanden als application-dev.yml en application-prod.yml liggen bovenop de basis. Activeer er een met --spring.profiles.active=prod of de SPRING_PROFILES_ACTIVE-env-var. De volgorde van precedentie is belangrijk: command-line-argumenten en environment-variabelen overschrijven bestanden, zodat secrets buiten de jar blijven.
De interviewer checkt of je één artifact over dev/staging/prod kunt opleveren zonder te herbouwen. @ConfigurationProperties boven verspreide @Value noemen, en env-vars die bestanden overschrijven voor secrets, laat zien dat je Boot-apps in productie hebt gedraaid, niet alleen lokaal.
Een bibliotheek met IT-sollicitatievragen met gedetailleerde antwoorden — van Junior tot Senior.
Doneren