Automaattinen konfigurointi ja Spring Boot -starterit
Ymmärrä, miten Spring Boot määrittää beanit automaattisesti classpath-riippuvuuksien ja ehtoja määrittävien annotaatioiden perusteella.
Automaattinen konfigurointi ja Spring Boot -starterit on ilmainen Java Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Java Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mikä on Spring Bootin automaattinen konfigurointi?
Automaattinen konfigurointi määrittää Spring-beanit automaattisesti sen perusteella, mitä classpathissa ja ympäristössä on käytettävissä. Se poistaa manuaalisen @Bean-määrityksen tarpeen yleisissä integraatioissa.
@SpringBootApplication-annotaatio
@SpringBootApplication on yhdistelmä annotaatioista @Configuration, @EnableAutoConfiguration ja @ComponentScan. Se aktivoi automaattisen konfiguroinnin ja komponenttien skannauksen.
@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args);
}
}Miten automaattinen konfigurointi toimii
Spring Boot etsii tiedostosta META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports (Spring Boot 3) automaattisten konfiguraatioluokkien luettelon. Kukin luokka otetaan käyttöön ehtojen perusteella.
// Spring Boot 3 imports file:
// org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
// org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration@ConditionalOnClass ja @ConditionalOnMissingBean
Automaattiset konfiguraatioluokat käyttävät @Conditional-annotaatioita, jotta ne otetaan käyttöön vain tiettyjen ehtojen täyttyessä — esimerkiksi kun luokka on classpathissa tai beania ei ole vielä määritetty.
@AutoConfiguration
@ConditionalOnClass(DataSource.class)
@ConditionalOnMissingBean(DataSource.class)
public class DataSourceAutoConfiguration {
@Bean
public DataSource dataSource(DataSourceProperties props) {
return DataSourceBuilder.create().build();
}
}Spring Boot -starterit
Starter on kuratoitu joukko riippuvuusmäärittelyjä. Kun lisäätte projektiinne spring-boot-starter-web-starterin, se tuo mukanaan Spring MVC:n, Tomcatin, Jacksonin ja niiden automaattiset konfiguraatiot — riippuvuuksia ei tarvitse etsiä manuaalisesti.
// build.gradle:
dependencies {
implementation "org.springframework.boot:spring-boot-starter-web"
implementation "org.springframework.boot:spring-boot-starter-data-jpa"
implementation "org.springframework.boot:spring-boot-starter-validation"
}Yleiset starterit
Keskeisiä startereita ovat: starter-web (REST + Tomcat), starter-data-jpa (JPA + Hibernate), starter-security, starter-test (JUnit + Mockito) ja starter-actuator (terveystiedot ja mittarit).
Automaattisen konfiguroinnin ohittaminen
Määritelkää oma saman tyyppinen @Bean, jotta se asetetaan automaattisesti määritettyjen beanien edelle. @ConditionalOnMissingBean varmistaa, että automaattisesti määritetty bean luodaan vain, jos oma beaninne puuttuu.
// Override auto-configured ObjectMapper:
@Configuration
public class JacksonConfig {
@Bean
public ObjectMapper objectMapper() {
return new ObjectMapper()
.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)
.registerModule(new JavaTimeModule());
}
}Automaattisen konfiguroinnin poissulkeminen
Poissulkekaa tietyt automaattiset konfiguraatioluokat, joita ette halua käyttää — tämä on hyödyllistä, kun starter tuo mukanaan jotain, jonka haluatte määrittää manuaalisesti.
@SpringBootApplication(exclude = {
DataSourceAutoConfiguration.class,
SecurityAutoConfiguration.class
})
public class MyApp { ... }Oman starterin luominen
Luokaa starter-moduuli, jossa on automaattinen konfiguraatioluokka, ja rekisteröikää se tiedostossa META-INF/spring/....AutoConfiguration.imports. Muut projektit, jotka sisällyttävät starterinne, saavat beaninne automaattisesti.
// my-starter/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports:
// com.example.MyLibraryAutoConfigurationAutomaattisen konfiguroinnin vianmääritys
Suorittakaa sovellus --debug-lipulla tai asettakaa logging.level.org.springframework.boot.autoconfigure=DEBUG, jotta näette "CONDITIONS EVALUATION REPORT" -raportin. Raportissa luetellaan, mitkä automaattiset konfiguraatiot otettiin käyttöön tai jätettiin pois ja miksi.
java -jar myapp.jar --debug
# Or in application.properties:
# logging.level.org.springframework.boot.autoconfigure=DEBUGActuator /conditions -päätepiste
Ottakaa spring-boot-starter-actuator käyttöön ja julkaiskaa /actuator/conditions-päätepiste, jotta näette automaattisen konfiguroinnin arviointiraportin ajon aikana ilman uudelleenkäynnistystä.
# application.properties:
management.endpoints.web.exposure.include=conditions
# Then:
curl http://localhost:8080/actuator/conditionsPikatarkistus
Mikä annotaatio saa beanin luotua vain, jos kyseistä tyyppiä olevaa beania ei ole vielä määritetty?
Kertaus
Automaattinen konfigurointi käyttää ehtoperustaisia annotaatioita beanien kytkemiseen classpathin ja olemassa olevien beanien perusteella. Starterit kokoavat yhteen riippuvuudet ja automaattisen konfiguroinnin. Ohittakaa oletukset omilla beaneillanne. Poissulkekaa tarpeettomat konfiguraatiot. Käyttäkää vianmääritykseen --debug-lippua.
Opi Java tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 104
- Oppitunnit
- 374
Usein kysytyt kysymykset
Onko oppitunti ”Automaattinen konfigurointi ja Spring Boot -starterit” ilmainen?
Kyllä – oppitunnin ”Automaattinen konfigurointi ja Spring Boot -starterit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Java Academy-kurssin, päivitä CoddyKit PROhon. Java Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Automaattinen konfigurointi ja Spring Boot -starterit”?
Ymmärrä, miten Spring Boot määrittää beanit automaattisesti classpath-riippuvuuksien ja ehtoja määrittävien annotaatioiden perusteella. Harjoittelet Java Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Java Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Java Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.
Kuinka kauan ”Automaattinen konfigurointi ja Spring Boot -starterit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Java Academy-oppitunnilla?
Kyllä. Jokainen Java Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Automaattinen konfigurointi ja Spring Boot -starterit
- Sovelluksen ominaisuudet ja profiilit
- Beanien kytkentä: @Component, @Service, @Repository
- Konstruktori-injektio ja kehäriippuvuudet