Kommentarer om forårstøvler
• 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