JavaRush /Java blogi /Random-UZ /Bahor. 1-dars. IoC/DI
Umaralikhon
Daraja
Красноярск

Bahor. 1-dars. IoC/DI

Guruhda nashr etilgan
Va shunday... Bahorni o'rganish uchun sizga Java yadrosi, Intellij IDEA Ultimate haqida bilim va biroz sabr kerak bo'ladi. Kurs bir nechta darslardan iborat bo'ladi. Har bir dars boshqa mavzuni o'z ichiga oladi. Men ham eslatma yozishni tavsiya qilaman. Ha, buning uchun hech kim sizga semestr uchun kredit bermaydi. Faqat eslatmalarni yozishda miyaning barcha qismlari axborotni eslab qolish uchun mo'ljallangan. Suv yetarli. Boshlanishi. Boshqarishning inversiyasi (IoC) && Bog'liqlik in'ektsiyasi (DI) Birinchidan, ikkita eng muhim atamani aniqlaymiz: Boshqarishning inversiyasi (IoC) va Bog'liqlik in'ektsiyasi (DI). IoC - bu sinflar va ob'ektlar o'rtasidagi bog'lanishni kamaytirish uchun ishlatiladigan OOP printsipi. Dasturchi kerakli kodni dasturning kerakli nuqtalariga joylashtiradi va joylashtirilgan kod qanday va qachon ishlashi haqida qayg'urmaydi. Oddiy qilib aytganda, IoC-dan foydalanganda kod dasturchi tomonidan emas, balki ramka tomonidan boshqariladi. DI - dastur ob'ektlarini bir-biriga zaif bog'liq qiladi. Ya'ni, dasturchi tomonidan ishlab chiqilgan tashqi mexanizm ob'ektlarni ishga tushirish bilan shug'ullanadi. DI dan foydalanganda dasturchi "sinf darajasida" emas, balki "interfeys darajasida" ishlaydi. Shunday qilib, ob'ektlar orasidagi bog'liqliklar minimal darajaga tushiriladi. Keling, mashq qilaylik Birinchidan, oddiy maven loyihasini yarataylik. Buning uchun "Yangi loyiha yaratish" bandini tanlang va menyudan "Maven" ni tanlang: Bahor kursi - IoC/DI - 1 Qolgan qismlarda siz standart qiymatlarni qoldirishingiz yoki ularni o'zingizning xohishingizga ko'ra o'zgartirishingiz mumkin (versiyadan tashqari): Bahor kursi - IoC/DI - 2 Shundan so'ng loyiha taxminan quyidagi tuzilma bilan ochiladi: Bahor kursi - IoC/DI - 3 Asosiy papkada dasturning asosiy qismini ishga tushirish uchun paketlar va kodlar va fayllar saqlanadi. Paketlar (bizning holimizda org.example) Java kodini saqlaydi. Resurslar papkasida konfiguratsiya fayllari yoki resurs fayllari bo'ladi. Aynan shu papkada biz applicationContext.xml faylini yaratamiz, unda biz fasollarimizni tasvirlaymiz (bu haqda keyinroq). Test papkasida test sinflari bo'ladi. Biz bu mavzuga tegmaymiz. Eng muhim fayllardan biri pom.xml faylidir. Ushbu fayl bizning loyihamiz uchun bahorga bog'liqlikni tavsiflaydi. Aynan shu fayl bilan biz ishimizni boshlaymiz. Avval ushbu faylni ochamiz. Fayl quyidagicha ko'rinadi:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>IoC</artifactId>
    <version>1.0-SNAPSHOT</version>

  <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

</project>
Biz ushbu faylga kerakli bog'liqliklarni qo'shamiz. Buni amalga oshirish uchun maven loyihasini boshqarish uchun barcha bog'liqliklarni o'z ichiga olgan mvnrepository.com veb-saytiga o'ting . Qidiruv qismida biz "Bahor konteksti" ni yozamiz. Natijalar ro'yxatidan "Bahor konteksti" ni tanlang (masalan, apache-dan "Bahor konteksti" va boshqa narsa emas). Keyin versiyani, eng yaxshisi RELEASE versiyasini tanlang. Shundan so'ng quyidagi oyna ochiladi: Bahor kursi - IoC/DI - 5 Biz qizil rang bilan belgilangan qismga qiziqamiz. Keling, kodni nusxalab, <dependencies> </dependencies> tegiga joylashtiramiz. Xuddi shu harakatlarni "Bahor fasoli" va "Bahor yadrosi" bog'liqliklari uchun bajaramiz. Natijada, pom.xml fayli quyidagicha ko'rinishi kerak:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>IoC</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-beans -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.15.RELEASE</version>
        </dependency>
    </dependencies>

    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>

</project>
Hamma narsa haqida qisqacha. Bahor yadrosi ramka ishlashi uchun barcha asosiy operatsiyalarni saqlaydi. Bahor konteksti - DI/IoC ishi uchun sinf ob'ektlarini yaratadi va saqlaydi. Va bahor fasollari loviya yaratish uchun ishlatiladi. Men sizga qutilar haqida biroz keyinroq aytib beraman. Bog'liqlarni qo'shgandan so'ng, yuqori o'ng burchakda belgi paydo bo'ladi: Bahor kursi - IoC/DI - 6 ustiga bosing va Idea ushbu bog'liqliklarning barchasini yuklab olishini kuting. Yuklab olingandan so'ng, "Tashqi kutubxonalar" loyiha papkasida biz bahorga bog'liqliklarni o'z ichiga olgan yuklab olingan .jar fayllarini ko'rishimiz mumkin: Bahor kursi - IoC/DI - 7 Bu bizning kursimizning birinchi darsini yakunlaydi. Shunday qilib, biz qisqacha bilib oldik:
  • IoC/DI nima
  • Bahor loyihalarini qanday yaratish kerak
  • Ularni qanday sozlash kerak
To'liq manba kodini ushbu havolada topishingiz mumkin . Mening GitHub hisobim Kurs mazmuni Davom etish uchun...
Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION