Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät · Oppitunti

Spring IoC -säiliö

Tutustukaa siihen, miten Spring luo ja yhdistää beanit.

Oppitunti 1/413 vaihetta

Spring IoC -säiliö on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-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 Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Inversion of Control

Inversion of Control (IoC) tarkoittaa, etteivät oliot enää luo omia yhteistyökumppaneitaan. Sen sijaan säiliö luo oliot ja välittää niille niiden riippuvuudet.

Tämä kääntää perinteisen suoritusvirran: sen sijaan että kutsuisitte new-operaattoria kaikkialla, ilmoitatte tarvitsemastanne ja annatte viitekehyksen yhdistää osat.

ApplicationContext

Springin IoC-säiliö on ApplicationContext. Se lukee bean-määritykset, luo beanit, ratkaisee riippuvuudet ja hallitsee niiden elinkaarta luomisesta sulkemiseen.

Spring Bootissa SpringApplication.run rakentaa kontekstin puolestanne ja pitää sen käynnissä.

Mikä on bean?

Bean on yksinkertaisesti olio, jonka säiliö luo ja jota se hallitsee. Konteksti tietää, miten se luodaan, mistä se riippuu ja milloin se tuhotaan.

Beanit ovat yleensä singleton-olioita, jotka elävät sovelluksen koko elinkaaren ajan, vaikka muitakin näkyvyyksiä on olemassa.

Beanien määrittäminen @Componentilla

Merkitkää luokka annotaatiolla @Component, jolloin komponenttien skannaus rekisteröi sen. Erikoistuneet annotaatiot, kuten @Service, @Repository ja @Controller, ovat @Component-annotaation muunnelmia, joilla on lisämerkitys.

@Service
public class OrderService {
    public void placeOrder() { /* ... */ }
}

@Repository
public class OrderRepository { }

Komponenttien skannaus

@SpringBootApplication sisältää @ComponentScan-annotaation, joka etsii pääluokan paketista ja sen alipaketeista stereotype-annotaatioita. Sijoittakaa luokat juuripaketin alle, jotta ne löydetään.

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

Beanien määrittäminen @Beanilla

Tyypeille, joita ette omista tai jotka haluatte määrittää itse, voitte määritellä @Bean-annotaatiolla merkityn factory-metodin @Configuration-luokan sisällä. Palautusarvosta tulee hallittu bean.

@Configuration
public class AppConfig {
    @Bean
    public RestClient restClient() {
        return RestClient.builder()
            .baseUrl("https://api.example.com")
            .build();
    }
}

@Component vs @Bean

Molemmat luovat beaneja, mutta niiden hallinta eroaa:

  • @Component — omistatte luokan ja annatte skannauksen rekisteröidä sen
  • @Bean — eksplisiittinen factory-metodi, joka sopii erityisesti kolmansien osapuolten luokille tai ehdolliseen luontiin

Riippuvuuksien injektointi käytännössä

Säiliö lukee beanin konstruktorin parametrit ja tarjoaa niitä vastaavat beanit. Tässä OrderService saa täysin rakennetun OrderRepository-olion automaattisesti.

@Service
public class OrderService {
    private final OrderRepository repo;
    public OrderService(OrderRepository repo) {
        this.repo = repo;
    }
}

Tyypin perusteella ratkaiseminen

Spring injektoi tyypin perusteella. Jos parametrin tyyppiä vastaa täsmälleen yksi bean, se yhdistetään automaattisesti. Beanin konkreettinen luokka voi toteuttaa rajapinnan, ja riippuvuus voidaan injektoida rajapintana.

@Service
public class NotificationService {
    private final MessageSender sender; // interface
    public NotificationService(MessageSender sender) {
        this.sender = sender; // gets the single impl bean
    }
}

Useiden ehdokkaiden käsitteleminen

Kun tyyppiä vastaa useita beaneja, valinta voidaan yksiselitteistää merkitsemällä oletusbean @Primary-annotaatiolla tai nimeämällä täsmälleen haluttu bean injektointikohtaan lisättävällä @Qualifier-annotaatiolla.

@Bean @Primary
MessageSender emailSender() { return new EmailSender(); }

@Bean
MessageSender smsSender() { return new SmsSender(); }

// inject a specific one
public Svc(@Qualifier("smsSender") MessageSender s) { }

Miksi IoC on hyödyllinen

Johdotuksen delegointi säiliölle tuo todellisia hyötyjä:

  • Testattavuus — injektoi mockit oikeiden yhteistyökumppanien sijaan
  • Löyhä kytkentä — riipu rajapinnoista, älä konstruktoreista
  • Keskitetty elinkaari — yksi paikka hallitsee luomista ja sammutusta

Pikatarkistus

Testaa, ymmärrätkö bean-määrityksen.

Kertaus

IoC-säiliö yhdistää sovelluksesi osat.

  • IoC tarkoittaa, että säiliö, ei oma koodisi, luo ja injektoi yhteistyökumppanit
  • ApplicationContext hallitsee beaneja
  • @Component + skannaus rekisteröi luokkasi; @Bean käsittelee muut
  • Injektio ratkaistaan tyypin perusteella, ja epäselvyydet ratkaistaan @Primary- ja @Qualifier-määritteillä
Aloita maksutta

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
24
Oppitunnit
93

Usein kysytyt kysymykset

Onko oppitunti ”Spring IoC -säiliö” ilmainen?

Kyllä – oppitunnin ”Spring IoC -säiliö” 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 Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Spring IoC -säiliö”?

Tutustukaa siihen, miten Spring luo ja yhdistää beanit. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Spring IoC -säiliö”-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ä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?

Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-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

  1. Spring IoC -säiliö
  2. Konstruktori- ja kenttäinjektio
  3. Beanien käyttöalueet
  4. Elinkaarikutsut
← Takaisin: Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät