前言我们都知道,Spring的功能非常强大,但也有些弊端 。比如:我们需要手动去配置大量的参数,没有默认值 , 需要我们管理大量的jar包和它们的依赖 。
为了提升Spring项目的开发效率,简化一些配置,Spring官方引入了SpringBoot 。
当然,引入SpringBoot还有其他原因,在这里就不过多描述了 。
本文重点跟大家一起聊聊SpringBoot
的starter
机制,因为它太重要了 。
![SpringBoot的starter到底是什么?](http://img.zhejianglong.com/231017/23235KK0-0.png)
文章插图
1 为什么要用starter?在
SpringBoot
还没有出来之前 , 我们使用Spring
开发项目 。如果程序需要连接数据库,我们一般会使用Hibernate
或Mybatis
等ORM
框架,这里我以Mybatis为例,具体的操作步骤如下:- 到maven仓库去找需要引入的mybatis jar包,选取合适的版本 。
- 到maven仓库去找mybatis-spring整合的jar包,选取合适的版本 。
- 在spring的applicationContext.xml文件中配置dataSource和mybatis相关信息 。
数据库驱动包
吗?确实需要引入,但数据库驱动有很多,比如:mysql、oracle、sqlserver , 这不属于mybatis的范畴,使用者可以根据项目的实际情况单独引入 。
如果程序只是需要连接数据库这一个功能还好,按上面的步骤做基本可以满足需求 。但是,连接数据库可能只是庞大的项目体系中一个环节,实际项目中往往更复杂,需要引入更多的功能,比如:连接redis、连接mongodb、使用rocketmq、使用excel功能等等 。
引入这些功能的话,需要再把上面的步骤再重复一次,工作量无形当中增加了不少,而且有很多
重复的工作
。另外,还是有个问题,每次到要到
maven
中找合适的版本
,如果哪次找的mybatis.jar包 和 mybatis-spring.jar包版本不兼容
,程序不是会出现问题?SpringBoot为了解决以上两个问题引入了
starter机制
。2 starter有哪些要素?我们首先一起看看
mybatis-spring-boot-starter.jar
是如何定义的 。![SpringBoot的starter到底是什么?](http://img.zhejianglong.com/231017/23235G0K-1.png)
文章插图
可以看到它的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>
从上面可以看出,pom.xml文件中会引入一些jar包,其中除了引入spring-boot-starter
,之外重点看一下:mybatis-spring-boot-autoconfigure
。我们找到
mybatis-spring-boot-autoconfigure.jar
文件 , 打开这个文件 。![SpringBoot的starter到底是什么?](http://img.zhejianglong.com/231017/23235G1V-2.png)
文章插图
里面包含如下文件:
- pom.properties配置maven所需的项目version、groupId和artifactId
- pom.xml配置所依赖的jar包
- additional-spring-configuration-metadata.json手动添加IDE提示功能
推荐阅读
- 现代诗的格式 现代诗格式模板
- 送老婆礼物前十件排名,每个都是女人无法拒绝的,你知道吗
- 怎么看手机指南针是正确的(手机指南针红色指向什么方向)
- 一加手机怎么样如何向只认牌子的妈妈推荐一加手机
- 一加手机怎么样各方面如何(国内的一加手机怎么样)
- P7476 苦涩 题解
- Springboot 之 HandlerMethodReturnValueHandler 运用
- ERP 系统的核心是什么?有什么作用?
- NIKKE胜利女神红辣椒的委托怎么做
- 申请qq号是怎么申请的(怎么申请两个qq号)