当前位置: 代码网 > it编程>编程语言>Java > Springboot创建时常用的依赖详解

Springboot创建时常用的依赖详解

2025年03月11日 Java 我要评论
新建springboot maven项目中pom常用依赖配置及常用的依赖1.springboot项目的总(父)依赖大全<parent> <artifactid>s

新建springboot maven项目中pom常用依赖配置及常用的依赖

1.springboot项目的总(父)依赖大全

<parent>
        <artifactid>spring-boot-dependencies</artifactid>
        <groupid>org.springframework.boot</groupid>
        <version>2.3.3.release</version>
</parent>

当我们使用 spring 或 spring-boot 开发项目时,需要引入很多依赖,包括 spring 本身的组件、各种 spring-boot-starter、以及其它第三方依赖(如:slf4j、redis)。依赖多了,版本的选择是个问题,就怕哪个版本选择的不对导致出现一些意想不到的 bug。

spring-boot-dependencies的作用主要是起到约束版本的作用,在这个包里面声明了各种版本号,供子项目去引用。类似spring-cloud-dependencies和spring-cloud-alibaba-dependencies则是去声明cloud和cloud-alibaba组件的版本。具体有些什么可以点进去看看就知道了。如果当下面的< dependency >中用到就可以不用配置版本号< version >

2.可执行的 web 应用且内含springboot核心启动器

包含各种springboot的配置日志等,创建项目时会自动引入该依赖

  • 支持注解:@controller、@service、@component、@resource 是spring的,所以spring boot创建完成后就可以使用(由spring-boot-starter支持)
  • 支持注解:@restcontroller、@requestmapping、@responsebody、@jsonformat(由spring-boot-starter-web支持)
<!--spring boot web-->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-web</artifactid>
        </dependency>

spring-boot-starter-web 是什么?

spring-boot-starter-web是一个依赖库,spring boot 是在 spring 的基础上创建的一个开原框架,它提供了 spring-boot-starter-web (web场景启动器)来为web开发予以支持。spring-boot-starter-web 提供了嵌入的servlet容器以及springmvc提供了大量自动配置,可以适用于大多数web开发场景。

只要我们在spring boot 项目中的 pom.xml 中引入了spring-boot-starter-web依赖,即使不进行任何配置,也可以使用spring mvc 进行 web 开发。spring web的启动程序使用spring mvc, rest和tomcat作为默认的嵌入式服务器。单个spring-boot-starter-web依赖关系可传递地获取与web开发相关的所有依赖关系。它还减少了构建依赖项计数。

配置了该依赖就不用再配置

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter</artifactid>
</dependency>

因为spring-boot-starter-web包含了spring-boot-starter等,可以点进去看看

3.junit测试,创建项目时会自动引入该依赖

用于编写springboot test测试类

springboot test测试类的使用

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-test</artifactid>
    <scope>test</scope>
</dependency>

4.mysql数据配置

配置mysql依赖时,不写版本号xx.xx.xx的话,就会引入mysql依赖的默认版本

  • springboot2.1.x以后默认使用的是mysql 8版本,
  • springboot2.1.x之前默认使用的是mysql 5.x版本

在配置数据源的时候,就有差异了:

  • 配置低版本 5.xx.xx:
spring.datasource.driver-class-name=com.mysql.jdbc.driver
spring.datasource.url=jdbc:mysql://localhost:3306/student?useunicode=true&characterencoding=utf-8&usessl=false
spring.datasource.username=root
spring.datasource.password=123456
  • 配置高版本 8.xx.xx:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.driver
spring.datasource.url=jdbc:mysql://localhost:3306/student?servertimezone=gmt%2b8&useunicode=true&characterencoding=utf-8&usessl=false
spring.datasource.username=root
spring.datasource.password=123456

<!--mysql 连接组件-->
<dependency>
    <groupid>mysql</groupid>
    <artifactid>mysql-connector-java</artifactid>
    <scope>runtime</scope>
</dependency>

5.mybatis

数据处理层持久层框架,连接数据库

着重点放在了编写sql上,而不是通过jdbc传统方式来不断操作connection、statment、resultset

注解@mapper 指定映射接口

application.yaml配置文件中配置自动识别的xml:

mybatis:

mapper-locations: classpath:mapper/**/*.xml
type-aliases-package: run.leave.mapper
<!--mybaits-->
        <dependency>
            <groupid>org.mybatis.spring.boot</groupid>
            <artifactid>mybatis-spring-boot-starter</artifactid>
            <version>2.1.2</version>
        </dependency>

8.druid连接池

		<!--druid-->
		<!--可以不配这个因为druid-spring-boot-starter里面已经有了,随便带着一下这个依赖,代码可读性高一点,反正对其他啥也没影响-->
        <dependency>
            <groupid>com.alibaba</groupid>
            <artifactid>druid</artifactid>
            <version>1.2.8</version>
        </dependency>

        <!--    druid spring boot 组件-->
        <dependency>
            <groupid>com.alibaba</groupid>
            <artifactid>druid-spring-boot-starter</artifactid>
            <version>1.2.8</version>
        </dependency>

在yaml文件中配置使用:

spring:
  datasource:
    #   数据源基本配置
    url: jdbc:mysql://localhost:3306/hotel?useunicode=true&characterencoding=utf-8&servertimezone=asia/shanghai
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.driver
    type: com.alibaba.druid.pool.druiddatasource
  #   数据源其他配置
    druid:
      #     配置初始化大小、最小、最大线程数
      initialsize: 5
      minidle: 5
      #     cpu核数+1,也可以大些但不要超过20,数据库加锁时连接过多性能下降
      maxactive: 20
      #     最大等待时间,内网:800,外网:1200(三次握手1s)
      maxwait: 60000
      timebetweenevictionrunsmillis: 60000
      #     配置一个连接在池中最大空间时间,单位是毫秒
      minevictableidletimemillis: 300000
      validationquery: select 1
      testwhileidle: true
      #     设置从连接池获取连接时是否检查连接有效性,true检查,false不检查
      testonborrow: true
      #     设置从连接池归还连接时是否检查连接有效性,true检查,false不检查
      testonreturn: true
      #     可以支持pscache(提升写入、查询效率)
      poolpreparedstatements: true
      #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filters: stat,wall,log4j
      #     保持长连接
      keepalive: true
      maxpoolpreparedstatementperconnectionsize: 20
      useglobaldatasourcestat: true
      connectionproperties: druid.stat.mergesql=true;druid.stat.slowsqlmillis=500

7.json格式转换工具fastjson

fastjson 是一个 java 库,可以将 java 对象转换为 json 格式,当然它也可以将 json 字符串转换为 java 对象。

java中 json、string、jsonobject、jsonarray格式之间互相转换

<dependency>
            <groupid>com.alibaba</groupid>
            <artifactid>fastjson</artifactid>
            <version>1.2.78</version>
        </dependency>

8.lombook

lombok最优秀的就是注解了,一个注解就干掉了很多代码

实体类中的注解.

  • @data :直接可以省略了get、set方法
  • @slf4j :不需要单独引入日志依赖和配置日志,直接 log.info( ) 打印日志

如何在ide编译器 中使用lombok插件?

  • idea中可以直接在编译器中搜索下载,就不多阐述了
  • eclipse则需要从官网下载lombok.jar包,然后双击启动jar包,逐步操作,指向eclisp.exe,重启eclipse即可
<!--lombok-->
        <dependency>
            <groupid>org.projectlombok</groupid>
            <artifactid>lombok</artifactid>
        </dependency>

9.面向切面编程aop

支持的注解:@aspectj、@pointcut、通知注解(如:@before、@after等)、@aspect和自定义注解

  • spring-boot-starter-aop及其使用场景说明
  • springboot 中的 aop 注解使用+ 自定义注解
<!--spring boot aop-->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-aop</artifactid>
        </dependency>

10.validation校验参数的实现

支持的注解:@max,@min等

常用注解和demo

<!--spring validation-->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-validation</artifactid>
        </dependency>

11.actuator 监控

主要是服务器运维使用,开发过程不常用

springboot 监控 actuator 的设置

<!--spring boot actuator-->
        <dependency>
            <groupid>org.springframework.boot</groupid>
            <artifactid>spring-boot-starter-actuator</artifactid>
        </dependency>

12.hutool工具包

提供了很多封装方法供开发者使用

<!--hutool-->
        <dependency>
            <groupid>cn.hutool</groupid>
            <artifactid>hutool-all</artifactid>
            <version>5.4.7</version>
        </dependency>

13.jupiter

其依赖包含了junit-jupiter-api、junit-jupiter-engine、junit-vintage-engine

<!--junit-->
        <dependency>
            <groupid>org.junit.jupiter</groupid>
            <artifactid>junit-jupiter</artifactid>
            <scope>test</scope>
        </dependency>

14.打包配置

用于生成部署到服务器的包

java项目在服务器部署过程

<build>
        <plugins>
            <plugin>
                <groupid>org.springframework.boot</groupid>
                <artifactid>spring-boot-maven-plugin</artifactid>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

15.多yaml文件配置

指定其使用那个文件,不配置下面的profiles,但创建的文件格式形如这样也是可用的

<profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activebydefault>true</activebydefault>
            </activation>
            <properties>
                <profilesactive>dev</profilesactive>
            </properties>
        </profile>
        <profile>
            <id>pro</id>
            <properties>
                <profilesactive>pro</profilesactive>
            </properties>
        </profile>
    </profiles>

16.使用properties标签统一编码和java版本

<!--统一编码和java版本-->
    <properties>
        <project.build.sourceencoding>utf-8</project.build.sourceencoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <java.version>1.8</java.version>
    </properties>

17.mybatis-plus

在mybatis基础上的升级版工具,避免了使用mybatis时需要编写大量的xml文件

<dependency>
    <groupid>com.baomidou</groupid>
    <artifactid>mybatis-plus-boot-starter</artifactid>
    <version>3.4.2</version>
</dependency>

18.springboot热部署

修改java代码后,不用重启项目就能直接最新测试,省略了不断修改代码不断重启项目的麻烦

<dependency>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-devtools</artifactid>
    <optional>true</optional>
</dependency>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com