免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

SpringBoot的starter到底是什么?

前言我們都知道,Spring的功能非常強(qiáng)大,但也有些弊端 。比如:我們需要手動去配置大量的參數(shù),沒有默認(rèn)值,需要我們管理大量的jar包和它們的依賴 。
為了提升Spring項目的開發(fā)效率,簡化一些配置,Spring官方引入了SpringBoot 。
當(dāng)然,引入SpringBoot還有其他原因,在這里就不過多描述了 。
本文重點跟大家一起聊聊SpringBootstarter機(jī)制,因為它太重要了 。

SpringBoot的starter到底是什么?

文章插圖
1 為什么要用starter?在SpringBoot還沒有出來之前,我們使用Spring開發(fā)項目 。如果程序需要連接數(shù)據(jù)庫,我們一般會使用HibernateMybatisORM框架,這里我以Mybatis為例,具體的操作步驟如下:
  1. 到maven倉庫去找需要引入的mybatis jar包,選取合適的版本 。
  2. 到maven倉庫去找mybatis-spring整合的jar包,選取合適的版本 。
  3. 在spring的applicationContext.xml文件中配置dataSource和mybatis相關(guān)信息 。
當(dāng)然有些朋友可能會指正,不是還需要引入數(shù)據(jù)庫驅(qū)動包嗎?
確實需要引入,但數(shù)據(jù)庫驅(qū)動有很多,比如:mysql、oracle、sqlserver,這不屬于mybatis的范疇,使用者可以根據(jù)項目的實際情況單獨引入 。
如果程序只是需要連接數(shù)據(jù)庫這一個功能還好,按上面的步驟做基本可以滿足需求 。但是,連接數(shù)據(jù)庫可能只是龐大的項目體系中一個環(huán)節(jié),實際項目中往往更復(fù)雜,需要引入更多的功能,比如:連接redis、連接mongodb、使用rocketmq、使用excel功能等等 。
引入這些功能的話,需要再把上面的步驟再重復(fù)一次,工作量無形當(dāng)中增加了不少,而且有很多重復(fù)的工作 。
另外,還是有個問題,每次到要到maven中找合適的版本,如果哪次找的mybatis.jar包 和 mybatis-spring.jar包版本不兼容,程序不是會出現(xiàn)問題?
SpringBoot為了解決以上兩個問題引入了starter機(jī)制 。
2 starter有哪些要素?我們首先一起看看mybatis-spring-boot-starter.jar是如何定義的 。
SpringBoot的starter到底是什么?

文章插圖
可以看到它的META-INF目錄下只包含了:
  • pom.protperties配置maven所需的項目version、groupId和artifactId 。
  • pom.xml配置所依賴的jar包 。
  • MANIFEST.MF 這個文件描述了該Jar文件的很多信息 。
  • spring.provides 配置所依賴的artifactId,給IDE使用的,沒有其他的作用 。
注意一下,沒有一行代碼 。
我們重點看一下pom.xml,因為這個jar包里面除了這個沒有啥重要的信息
<?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><parent><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot</artifactId><version>1.3.1</version></parent><artifactId>mybatis-spring-boot-starter</artifactId><name>mybatis-spring-boot-starter</name><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-autoconfigure</artifactId></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></dependency></dependencies></project>

經(jīng)驗總結(jié)擴(kuò)展閱讀