Bilješke za proljetne čizme

Ovaj je članak dio niza: • Proljetne temeljne bilješke

• Proljetne web bilješke

• Bilješke o proljetnom pokretanju (trenutni članak) • Bilješke o rasporedu proljetnih prolaza

• Proljetne bilješke podataka

• Bilješke proljetnog graha

1. Pregled

Spring Boot olakšao je konfiguriranje Springa pomoću značajke automatske konfiguracije.

U ovom brzom vodiču istražit ćemo napomene s org.springframework.boot.autoconfigure i org.springframework.boot.autoconfigure.condition paketi.

2. @SpringBootApplication

Ovu bilješku koristimo za označite glavnu klasu aplikacije Spring Boot:

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

@SpringBootApplication enkapsulira @Konfiguracija, @EnableAutoConfiguration, i @ComponentScan napomene sa svojim zadanim atributima.

3. @EnableAutoConfiguration

@EnableAutoConfiguration, kako mu samo ime kaže, omogućuje automatsku konfiguraciju. To znači da Spring Boot traži grah za automatsku konfiguraciju na svojoj stazi razreda i automatski ih primjenjuje.

Imajte na umu da ovu bilješku moramo koristiti s @Konfiguracija:

@Configuration @EnableAutoConfiguration klasa VehicleFactoryConfig {}

4. Uvjeti automatske konfiguracije

Obično, kada napišemo svoj prilagođene automatske konfiguracije, želimo da proljeće upotrijebite ih uvjetno. To možemo postići bilješkama u ovom odjeljku.

Bilješke možemo smjestiti u ovaj odjeljak @Konfiguracija razreda ili @Grah metode.

U sljedećim odjeljcima predstavit ćemo samo osnovni koncept koji stoji iza svakog uvjeta. Dodatne informacije potražite u ovom članku.

4.1. @ConditionalOnClass i @ConditionalOnMissingClass

Koristeći ove uvjete, Spring će koristiti označeni grah za automatsku konfiguraciju samo ako je klasa u bilješci argument je prisutan / odsutan:

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

4.2. @ConditionalOnBean i @ConditionalOnMissingBean

Te bilješke možemo koristiti kada želimo definirati uvjete na temelju prisutnost ili odsutnost određenog graha:

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

4.3. @ConditionalOnProperty

Ovom bilješkom možemo stvoriti uvjete za vrijednosti svojstava:

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

4.4. @ConditionalOnResource

Možemo natjerati Spring da koristi definiciju samo kada je određena resurs je prisutan:

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

4.5. @ConditionalOnWebApplication i @ConditionalOnNotWebApplication

Pomoću ovih bilješki možemo stvoriti uvjete na temelju trenutne aplikacija jest ili nije web aplikacija:

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

4.6. @ConditionalExpression

Ovu bilješku možemo koristiti u složenijim situacijama. Spring će koristiti označenu definiciju kada Izraz SpEL-a ocjenjuje se istinitim:

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

4.7. @Uvjetno

Za još složenije uvjete možemo stvoriti razred koji ocjenjuje prilagođeno stanje. Kažemo Springu da koristi ovo prilagođeno stanje @Uvjetno:

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

5. Zaključak

U ovom smo članku vidjeli pregled kako možemo fino prilagoditi postupak automatske konfiguracije i pružiti uvjete za prilagođeni grah za automatsku konfiguraciju.

Kao i obično, primjeri su dostupni na GitHubu.

Sljedeći » Bilješke o rasporedu proljeća « Prethodne proljetne web bilješke