Dalam program kemasukan Spring Boot, fail pom.xml projek mempunyai dua kebergantungan teras, iaitu spring-boot-starterparent dan spring-boot-starter-web Pengenalan yang berkaitan dengan dua kebergantungan ini adalah seperti berikut:
Cari kebergantungan spring-boot-starter-parent dalam fail pom.xml dalam projek chapter01 Kod sampel adalah seperti berikut:
<!-- Spring Boot父项目依赖管理 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent<11./artifactId> <version>2.2.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
In kod di atas, Kebergantungan spring-boot-starter-parent berfungsi sebagai pengurusan kebergantungan projek induk bersatu bagi projek Spring Boot, dan menyatukan nombor versi projek kepada 2.2.2.RELEASE Nombor versi ini boleh diubah suai mengikut pembangunan sebenar keperluan.
Gunakan "Ctrl + butang tetikus kiri" untuk memasukkan dan melihat fail sumber asas spring-boot-starter-parent Didapati bahawa fail sumber asas spring-bootstarter-parent mempunyai spring bergantungan induk -boot-dependencies. Kod teras adalah seperti berikut
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.2.2.RELEASE</version> <relativePath>../../spring-boot-dependencies</relativePath> </parent>
Teruskan melihat fail sumber asas bagi spring-boot-dependencies Kod teras adalah seperti berikut:
<properties> <activemq.version>5.15.11</activemq.version> ... <solr.version>8.2.0</solr.version> <mysql.version>8.0.18</mysql.version> <kafka.version>2.3.1</kafka.version> <spring-amqp.version>2.2.2.RELEASE</spring-amqp.version> <spring-restdocs.version>2.0.4.RELEASE</spring-restdocs.version> <spring-retry.version>1.2.4.RELEASE</spring-retry.version> <spring-security.version>5.2.1.RELEASE</spring-security.version> <spring-session-bom.version>Corn-RELEASE</spring-session-bom.version> <spring-ws.version>3.0.8.RELEASE</spring-ws.version> <sqlite-jdbc.version>3.28.0</sqlite-jdbc.version> <sun-mail.version>${jakarta-mail.version}</sun-mail.version> <tomcat.version>9.0.29</tomcat.version> <thymeleaf.version>3.0.11.RELEASE</thymeleaf.version> <thymeleaf-extras-data-attribute.version>2.0.1</thymeleaf-extras-dataattribute.version> ... </properties>
Seperti yang dapat dilihat daripada fail sumber asas spring-boot-dependencies, fail ini menggunakan tag untuk menyokong beberapa teknologi biasa Fail kebergantungan rangka kerja mempunyai pengurusan nombor versi bersatu, seperti activemq, spring, tomcat, dll., semuanya mempunyai versi yang sepadan. versi Spring Boot 2.2.2 Inilah sebabnya pom.xml tidak perlu menandakan nombor versi fail dependen apabila memperkenalkan fail dependency.
Perlu diambil perhatian bahawa jika fail dependency yang diperkenalkan oleh pom.xml tidak diuruskan oleh spring-boot-starter-parent, maka apabila pom.xml memperkenalkan fail dependency, anda perlu menggunakan label untuk menentukan nombor versi fail kebergantungan.
Soalan 2: Fungsi utama pemula pergantungan induk spring-boot-starter-parent adalah untuk menjalankan pengurusan versi bersatu Jadi di manakah pakej JAR yang bergantung kepada barisan projek dari?
Lihat kod sumber fail dependensi spring-boot-starter-web Kod teras adalah seperti berikut
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.7.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> <version>2.7.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <version>2.7.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>5.3.21</version> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.21</version> <scope>compile</scope> </dependency> </dependencies>
Daripada kod di atas, kita dapati. bahawa spring-boot-starter-web Fungsi utama pelancar kebergantungan adalah untuk menyediakan semua kebergantungan asas yang diperlukan untuk senario pembangunan web.
Tepat sekali, apabila pemula pergantungan spring-boot-starter-web diperkenalkan dalam pom.xml, pembangunan senario Web boleh direalisasikan tanpa perlu mengimport pelayan Tomcat dan fail pergantungan Web yang lain. Sudah tentu, nombor versi fail pergantungan yang diimport ini diuruskan secara seragam oleh pergantungan induk spring-boot-starter-parent.
Selain pemula pergantungan Web yang diperkenalkan di atas, Spring Boot juga menyediakan pergantungan yang berkaitan untuk banyak senario pembangunan lain Kami boleh membuka dokumentasi Spring Boot rasmi dan mencari kata kunci "Pemula" untuk menanyakan pemula pergantungan senario. .
menyenaraikan beberapa pelancar kebergantungan senario yang disediakan secara rasmi oleh Spring Boot Pelancar pergantungan ini sesuai untuk pembangunan senario yang berbeza dan hanya perlu digunakan dalam fail pox.xml. . Hanya import pemula pergantungan yang sepadan.
Perlu diambil perhatian bahawa pegawai Spring Boot tidak menyediakan pelancar senario untuk semua rangka kerja teknikal yang dibangunkan untuk senario, seperti rangka kerja operasi pangkalan data MyBatis, sumber data Druid Alibaba, dsb. Pegawai Spring Boot tidak menyediakannya. pemula pergantungan yang sepadan. Untuk menggunakan sepenuhnya kelebihan rangka kerja Spring Boot, apabila Spring Boot secara rasmi tidak menyepadukan rangka kerja teknikal ini, pasukan pembangunan rangka kerja teknikal seperti MyBatis dan Druid mengambil inisiatif untuk menyepadukan dengan rangka kerja Spring Boot dan melaksanakannya. pemula pergantungan masing-masing, seperti mybatis-spring-boot-starter, druid-spring-boot-starter, dsb. Apabila kami memperkenalkan pemula pergantungan pihak ketiga ini dalam fail pom.xml, ingat untuk mengkonfigurasi nombor versi yang sepadan.
Atas ialah kandungan terperinci Kaedah konfigurasi pengurusan pergantungan SpringBoot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!