Kommentarer om vårstøvler

Denne artikkelen er en del av en serie: • Spring Core Annotations

• Nettnotater om våren

• Spring Boot Annotations (nåværende artikkel) • Spring Scheduling Annotations

• Vårdataanmerkninger

• Kommentarer om vårbønner

1. Oversikt

Spring Boot gjorde det enklere å konfigurere Spring med den automatiske konfigurasjonsfunksjonen.

I denne raske opplæringen vil vi utforske kommentarene fra org.springframework.boot.autoconfigure og org.springframework.boot.autoconfigure.condition pakker.

2. @SpringBootApplication

Vi bruker denne merknaden til merke hovedklassen til en Spring Boot-applikasjon:

@SpringBootApplication klasse VehicleFactoryApplication {public static void main (String [] args) {SpringApplication.run (VehicleFactoryApplication.class, args); }}

@SpringBootApplication innkapsler @Konfigurasjon, @EnableAutoConfiguration, og @ComponentScan merknader med standardattributtene.

3. @EnableAutoConfiguration

@EnableAutoConfiguration, som navnet sier, muliggjør automatisk konfigurasjon. Det betyr at Spring Boot ser etter autokonfigurasjonsbønner på klassestien og bruker dem automatisk.

Merk at vi må bruke denne merknaden med @Konfigurasjon:

@Configuration @EnableAutoConfiguration klasse VehicleFactoryConfig {}

4. Autokonfigurasjonsbetingelser

Vanligvis når vi skriver vår tilpassede autokonfigurasjoner, vi vil at våren skal bruk dem betinget. Vi kan oppnå dette med kommentarene i denne delen.

Vi kan plassere kommentarene i denne delen på @Konfigurasjon klasser eller @Bønne metoder.

I de neste avsnittene vil vi bare introdusere det grunnleggende konseptet bak hver tilstand. For mer informasjon, vennligst besøk denne artikkelen.

4.1. @ConditionalOnClass og @ConditionalOnMissingClass

Ved å bruke disse forholdene vil Spring bare bruke den merkede autokonfigurasjonsbønnen hvis klassen i kommentaren er argument er til stede / fraværende:

@Configuration @ConditionalOnClass (DataSource.class) klasse MySQLAutoconfiguration {// ...}

4.2. @ConditionalOnBean og @ConditionalOnMissingBean

Vi kan bruke disse merknadene når vi vil definere forhold basert på tilstedeværelse eller fravær av en bestemt bønne:

@Bean @ConditionalOnBean (name = "dataSource") LocalContainerEntityManagerFactoryBean entityManagerFactory () {// ...}

4.3. @ConditionalOnProperty

Med denne kommentaren kan vi gjøre betingelser på verdier av eiendommer:

@Bean @ConditionalOnProperty (name = "usemysql", havingValue = "local") DataSource dataSource () {// ...}

4.4. @ConditionalOnResource

Vi kan få våren til å bruke en definisjon bare når en spesifikk ressurs er til stede:

@ConditionalOnResource (resources = "classpath: mysql.properties") Egenskaper additionalProperties () {// ...}

4.5. @ConditionalOnWebApplication og @ConditionalOnNotWebApplication

Med disse kommentarene kan vi lage betingelser basert på om strømmen er applikasjonen er eller er ikke en webapplikasjon:

@ConditionalOnWebApplication HealthCheckController healthCheckController () {// ...}

4.6. @ConditionalExpression

Vi kan bruke denne merknaden i mer komplekse situasjoner. Våren vil bruke den markerte definisjonen når SpEL-uttrykk blir evaluert til sant:

@Bean @ConditionalOnExpression ("$ {usemysql} && $ {mysqlserver == 'local'}") DataSource dataSource () {// ...}

4.7. @Betinget

For enda mer komplekse forhold kan vi lage en klasse som vurderer tilpasset tilstand. Vi ber våren bruke denne egendefinerte tilstanden med @Betinget:

@Conditional (HibernateCondition.class) Egenskaper additionalProperties () {// ...}

5. Konklusjon

I denne artikkelen så vi en oversikt over hvordan vi kan finjustere autokonfigurasjonsprosessen og gi betingelser for tilpassede autokonfigurasjonsbønner.

Som vanlig er eksemplene tilgjengelige på GitHub.

Neste » Kommentarer om vårplanlegging « Forrige vårkommentarer om våren

$config[zx-auto] not found$config[zx-overlay] not found