Kommentarer om forårstøvler

Denne artikel er en del af en serie: • Spring Core Annotations

• Annoncer om foråret på nettet

• Spring Boot Annotations (nuværende artikel) • Spring Scheduling Annotations

• Kommentarer om forårsdata

• Kommentarer om forårets bønner

1. Oversigt

Spring Boot gjorde det lettere at konfigurere Spring med sin auto-konfigurationsfunktion.

I denne hurtige vejledning undersøger vi kommentarerne fra org.springframework.boot.autoconfigure og org.springframework.boot.autoconfigure.condition pakker.

2. @SpringBootApplication

Vi bruger denne kommentar til markere hovedklassen i en Spring Boot-applikation:

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

@SpringBootApplication indkapsler @Konfiguration, @EnableAutoConfigurationog @ComponentScan annoteringer med deres standardattributter.

3. @EnableAutoConfiguration

@EnableAutoConfiguration, som navnet siger, muliggør automatisk konfiguration. Det betyder at Spring Boot ser efter automatisk konfiguration af bønner på klassestien og anvender dem automatisk.

Bemærk, at vi skal bruge denne kommentar med @Konfiguration:

@Configuration @EnableAutoConfiguration klasse VehicleFactoryConfig {}

4. Autokonfigurationsbetingelser

Normalt når vi skriver vores brugerdefinerede autokonfigurationer, vi vil have foråret til Brug dem betinget. Vi kan opnå dette med kommentarerne i dette afsnit.

Vi kan placere kommentarerne i dette afsnit på @Konfiguration klasser eller @Bønne metoder.

I de næste sektioner introducerer vi kun det grundlæggende koncept bag hver betingelse. For yderligere information, se denne artikel.

4.1. @ConditionalOnClass og @ConditionalOnMissingClass

Under disse betingelser bruger Spring kun den markerede autokonfigurationsbønne, hvis klassen i kommentarerne er argument er til stede / fraværende:

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

4.2. @ConditionalOnBean og @ConditionalOnMissingBean

Vi kan bruge disse bemærkninger, når vi vil definere betingelser baseret på tilstedeværelse eller fravær af en bestemt bønne:

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

4.3. @ConditionalOnProperty

Med denne kommentar kan vi stille betingelser for værdier af egenskaber:

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

4.4. @ConditionalOnResource

Vi kan få Spring til kun at bruge en definition, når en bestemt ressource er til stede:

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

4.5. @ConditionalOnWebApplication og @ConditionalOnNotWebApplication

Med disse kommentarer kan vi skabe betingelser baseret på, om den aktuelle applikation er eller er ikke en webapplikation:

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

4.6. @ConditionalExpression

Vi kan bruge denne kommentar i mere komplekse situationer. Foråret bruger den markerede definition, når SpEL-udtryk evalueres til sandt:

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

4.7. @Betinget

For endnu mere komplekse forhold kan vi oprette en klasse, der evaluerer brugerdefineret tilstand. Vi beder Spring om at bruge denne brugerdefinerede tilstand med @Betinget:

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

5. Konklusion

I denne artikel så vi en oversigt over, hvordan vi kan finjustere den automatiske konfigurationsproces og give betingelser for tilpassede autokonfigurationsbønner.

Som sædvanligt er eksemplerne tilgængelige på GitHub.

Næste » Forårsplanlægningsanmærkninger « Tidligere forårswebkommentarer