前言我们都知道,Spring的功能非常强大,但也有些弊端 。比如:我们需要手动去配置大量的参数,没有默认值,需要我们管理大量的jar包和它们的依赖 。
为了提升Spring项目的开发效率,简化一些配置,Spring官方引入了SpringBoot 。
当然,引入SpringBoot还有其他原因,在这里就不过多描述了 。
本文重点跟大家一起聊聊SpringBoot
的starter
机制,因为它太重要了 。
文章插图
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
是如何定义的 。文章插图
可以看到它的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>
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 比较高级的土味情话
- 大麦小麦和燕麦的区别
- 2023年2月15日是请佛吉日吗 2023年2月15日是请佛的黄道吉日吗
- 钨做灯丝的原因
- 雄蚕蛾泡酒方法
- 微信运动关注的人是什么意思
- 通大便的食物与水果
- 经典力学的奠基人是谁
- 中度贫血会头晕吗
- 养生堂维生素c的功效