SpringBoot 的Pom 文件解读

在这里插入图片描述

参考下面文章的学习笔记:

spring boot中pom文件解读
搭建SpringBoot项目阶段groupId和artifactId怎么写呢?
springboot中pom文件详解
POM标签大全详解
springboot入门–pom文件解读
SpringBoot 常用依赖
spring-boot-starter家族成员简介
Spring Boot Starter 简介
在这里插入图片描述

Pom文件的基本构成

几乎最简单的一个SpringBoot 项目的 Pom文件,通过她来了解一下Pom文件的基本构成;

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion> <!--model的版本--> <!--model作用: 待更新-->

	<!--当前项目的父依赖-->
	<!--spring-boot-starter-parent 继承 spring-boot-dependencies-->
	<!--spring-boot-dependencies 包含了大量配置好的依赖管理,在自己的项目里添加这些依赖时不需要再写<version>版本号-->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.5.5</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>

	<!--groupid 和 artifactId 统称为 “坐标” 为了保证项目唯一性; groupid + artifactId -> 唯一指定某个项目 -->
	<groupId>com.example</groupId><!--groupId 一般为 域名 + 公司名 -->
	<artifactId>nodep</artifactId><!--artifactId 一般是 项目名 或 模块名-->
	<!--举个apache公司的tomcat项目例子: org.apache.tomcat; 域有 org、com、cn等,其中org为非营利组织,com为商业组织;-->

	<version>0.0.1-SNAPSHOT</version><!--项目当前版本,格式为:主版本.次版本.增量版本-限定版本号 -->
	<packaging>jar</packaging><!--项目产生的构件类型,例如jar、war、ear、pom 等-->

	<name>nodep</name> <!--项目的名称, Maven产生的文档用 -->
	<url>http://www.qwqwq.com/banseon</url><!--项目主页的URL, Maven产生的文档用 -->
	<description>nodep</description><!--项目的详细描述, Maven产生的文档用。-->

	<properties>
		<java.version>1.8</java.version><!--属性配置:jdk版本-->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><!--编译字符编码为utf-8-->
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><!--输出字符编码为UTF-8-->
	</properties>


	<!--项目相关的所有依赖-->
	<dependencies>
		<!--单元测试启动器-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<!--构建项目需要的信息-->
	<build>
		<!--使用的插件列表-->
		<plugins>
			<!--maven插件,可以用maven的功能-->
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>

在这里插入图片描述

artifactId 和 name 区别?

groupId + artifactId 唯一确定当前项目;
name 只是项目的名称;
大多数情况下,artifactId 和 name 设置成一样的了,所以容易引起混淆;
仅仅代表个人理解。
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

SpringBoot常用依赖

springboot 在配置上相比spring要简单许多, 其核心在于各种springboot starter; 由于springboot 的自动装配,在使用springboot搭建一个项目时, 只需要引入官方提供的starter, 就可以直接使用里面的功能, 免去了各种配置。

有关 Spring Boot Starter 命名规范:
所有官方发布的 Starter 都遵循以下命名模式:spring-boot-starter-*,其中 * 指特定的应用程序代号或名称,譬如 spring-boot-starter-jdbc
任何第三方提供的 Starter 都不能以 spring-boot 作为前缀,应该将应用程序代号或名称作为前缀 *-spring-boot-starter,譬如 mybatis-spring-boot-starter

spring-boot-starter

Spring Boot 核心 starter,包括自动配置支持,日志和YAML

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
</dependency>

spring-boot-starter-web

​ 对全栈web开发的支持,包括Tomcat和spring-webmvc

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

数据访问层

Mybatis+Mapper

<mybatis-spring-boot-starter.version>1.3.2</mybatis-spring-boot-starter.version>

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>${mybatis-spring-boot-starter.version}</version>
</dependency>
<mapper-spring-boot-starter.version>1.1.7</mapper-spring-boot-starter.version>

<dependency>
    <groupId>tk.mybatis</groupId>
    <artifactId>mapper-spring-boot-starter</artifactId>
    <version>${mapper-spring-boot-starter.version}</version>
</dependency>

关系型数据库

spring-boot-starter-jdbc

对JDBC数据库的支持

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

mysql

MySQL驱动

<mysql-connector-java.version>8.0.15</mysql-connector-java.version>

<!-- mysql驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

oracle

Oracle驱动

<oracle.version>11.2</oracler.version>

<dependency>
   <groupId>org.oracle</groupId>
   <artifactId>oracle</artifactId>
   <version>${oracle.version}</version>
</dependency>

非关系型数据库

spring-boot-starter-data-mongodb

对MongoDB 数据库的支持,包括spring-data-mongodb

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

spring-boot-starter-redis

对REDIS数据库的支持,包括Spring-redis

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
</dependency>

连接池

druid

<druid.version>1.1.5</druid.version>

<dependency>  
    <groupId>com.alibaba</groupId>  
    <artifactId>druid</artifactId>  
    <version>${druid.version}</version>  
</dependency>

HikariCP

<dependency>
   <groupId>com.zaxxer</groupId>
   <artifactId>HikariCP</artifactId>
</dependency>

测试

spring-boot-starter-test

对常用测试依赖的支持,包括JUnit, Hamcrest和Mockito,还有spring-test模块

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

权限控制

spring-boot-starter-security

对spring -security模板引擎的支持

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

shiro-spring

​ 备注:(权限控制

<shrio-spring.version>1.4.0</shrio-spring.version>

<dependency>
    <groupId>org.apache.shiro</groupId>
    <artifactId>shiro-spring</artifactId>
    <version>${shrio-spring.version}</version>
</dependency>

监控中心及注册中心

Dubbo+Zookeeper

<dubbo-spring-boot-starter.version>0.2.1.RELEASE</dubbo-spring-boot.version>

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>${dubbo-spring-boot-starter.version}</version>
</dependency>

springCloud

​ (父工程)

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.M9</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

​ springCloud+eureka 模块(注册)

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

​ springCloud+客户端(调用)

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

JSON格式转换

fastjson

<fastjson.version>1.2.16</fastjson.version>

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>fastjson</artifactId>
   <version>${fastjson.version}</version>
</dependency>

jackson-databind

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<jackson-databind.version>2.9.8</jackson-databindversion>


<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson-databind.version}</version>
</dependency>

gson

<gson.version>2.8.5</gson.version>

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>${gson.version}</version>
</dependency>

commons组件

commons-lang3

用于java.lang层次结构中的类,或被认为是标准的,以证明java.lang中的存在

<commons.lang3.version>3.7</commons.lang3.version>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>${commons.lang3.version}</version>
</dependency>

commons-io

包含实用程序类,流实现,文件过滤器,文件比较器,endian转换类等等

<commons.io.version>2.6</commons.io.version>

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>${commons.io.version}</version>
</dependency>

commons-collections4

扩展和扩充Java Collections Framework的类型

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
<commons-collections4.version>4.3<commons-collections4.version>

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>${commons-collections4.version}</version>
</dependency>

commons-logging

允许与其他众所周知的日志记录系统进行可配置的桥接

<!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
<commons-logging.version>1.2</commons-logging.version>
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>${commons-logging.version}</version>
</dependency>

常用工具

监控 spring-boot-starter-actuator

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

日志 spring-boot-starter-log4j2

org.springframework.boot spring-boot-starter-log4j2

日志 slf4j-api

<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<slf4j-api.version>1.8.0-beta4</slf4j-api.version>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>${slf4j-api.version}</version>
</dependency>

lombok 简化JavaBean开发

简化JavaBean开发

<lombok.version>1.8.16</lombok.version>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>${lombok.version}</version>
</dependency>

分页插件 pagehelper-spring-boot-start

分页插件

<pagehelper-spring-boot-starter.version>1.25</pagehelper-spring-boot-starter>

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>${pagehelper-spring-boot-starter.version}</version>
</dependency>

spring-boot-starter-freemaker

对FreeMarker模板引擎的支持

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

spring-boot-starter-mail

对javax.mail的支持

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

文件上传

<commons-fileupload.version>1.3.1</commons-fileupload.version>

<fastdfs-client.version>1.25-RELEASE</fastdfs-client.version>

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>${commons-fileupload.version}</version>
</dependency>
<dependency>
    <groupId>org.csource</groupId>
    <artifactId>fastdfs-client</artifactId>
    <version>${fastdfs-client.version}</version>
</dependency>

POI导入/导出

<poi.version>3.16</poi.version>
<poi-ooxml.version>3.14</poi-ooxml.version>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>${poi.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>${poi-ooxml.version}</version>
</dependency>

activiti 工作流

<activiti-engine.version>7-201802-EA</activiti-engine.version>
<dependency>
    <groupId>org.activiti</groupId>
    <artifactId>activiti-engine</artifactId>
    <version>${activiti-engine.version}</version>
</dependency>

验证码

<kaptcha.version>2.3.2</kaptcha.version>
<dependency>
    <groupId>com.github.penggle</groupId>
    <artifactId>kaptcha</artifactId>
    <version>${kaptcha.version}</version>
</dependency>

阿里云发送短信

<aliyun-java-sdk-core.version>3.3.1</aliyun-java-sdk-core.version>

<aliyun-java-sdk-dysmsapi.version>1.0.0</aliyun-java-sdk-dysmsapi.version>

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>${aliyun-java-sdk-core.version}</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
    <version>${aliyun-java-sdk-dysmsapi.version}</version>
</dependency>

微信支付

<wxpay-sdk.version>0.0.3</wxpay-sdk.version>
<dependency>
    <groupId>com.github.wxpay</groupId>
    <artifactId>wxpay-sdk</artifactId>
    <version>${wxpay-sdk.version}</version>
</dependency>

支付宝支付

<sdk-alipay-starter.version>3.7.4.ALL</sdk-alipay-starter.version>
<dependency>
    <groupId>net.guerlab</groupId>
    <artifactId>alipay-sdk-java</artifactId>
    <version>${sdk-alipay-starter.version}</version>
</dependency>

热部署 spring-boot-devtools

<spring-boot-devtools.version>2.1.3.RELEASE</spring-boot-devtools>

    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional>
    <scope>true</scope>
</dependency>

httpclient

<httpclient.version>4.5.7</httpclient.version>

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
</dependency>

joda-time

用于替换JDK日期处理的日期和时间库

<!-- https://mvnrepository.com/artifact/joda-time/joda-time -->
<joda-time.version>2.10.1</joda-time.version>

<dependency>
    <groupId>joda-time</groupId>
    <artifactId>joda-time</artifactId>
    <version>${joda-time.version}</version>
</dependency>

接口文档 springfox-swagger2

<!--接口文档地址:localhost:port/swagger-ui.html-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
<!--接口文档地址:localhost:port/doc.html-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.6</version>
</dependency>

猜你喜欢

转载自blog.csdn.net/weixin_37646636/article/details/120462120