Springcloud学习笔记36Springboot 项目maven 常用依赖和application.yml配置

1.Pom文件依赖

打开mvnrepository仓库:https://mvnrepository.com/,输入spring-boot-starter-web

1.1 springboot 进行统一的版本管理

通过标签<parent>:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.6.RELEASE</version>
    </parent>

在后面在进行引入依赖的时候,就写作为如下方式:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--<version>2.1.6.RELEASE 已经统一指定</version>-->
        </dependency>

以上的这种统一版本的管理是spring boot默认的方式。

1.2 构建web项目模块

核心作用:快速web应用开发

为了帮我们简化快速搭建并开发一个Web项目,Spring boot为我们提供了spring-boot-starter-web自动配置模块。

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

spring-boot-starter-web默认为我们提供一些SpringMVC必要的组件。

spring-boot-starter-web默认使用嵌入式的tomcat作为web容器对外提供HTTP服务。

1.3. Nacos实现服务注册和发现

注意:实际使用时,需要启动本地单机版nacos,具体见 https://www.cnblogs.com/luckyplj/p/15175191.html

        <!--nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

1.4.JDBC驱动包

 mysql-connector-java 是MySQL的JDBC驱动包,用JDBC连接MySQL数据库时必须使用该jar包。

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>

1.5.数据库连接配置

默认情况下,当我们没有配置任何DataSource,SpringBoot会为我们自动配置一个DataSource,这种自动配置的方式一般适用于测试,开发还是自己配置一个DataSource的实例比较好。
如果我们的工程只依赖一个数据库,那么,使用DataSource自动配置模块提供的参数是最方便的:
spring.datasource.url=jdbc:mysql://{datasource host}:3306/{databaseName}
spring.datasource.username={database username}
spring.datasource.passwd={database passwd}

对应的maven 依赖:

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

1.6.mybatisPlus

Mybatis-Plus是一个Mybatis的增强工具,只是在Mybatis的基础上做了增强却不做改变,MyBatis-Plus支持所有Mybatis原生的特性,所以引入Mybatis-Plus不会对现有的Mybatis构架产生任何影。Mybatis-Plus又简称(MP)是为简化开发,提高开发效率而生.

        <!-- mybatisPlus 核心库 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

        <!-- 添加 代码生成器 依赖 -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.2.0</version>
        </dependency>

        <!--模板引擎(mybatis-plus自动生成代码需要模板)-->
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.28</version>
        </dependency>

Mybatis-plus代码生成器具体使用参考:https://www.cnblogs.com/luckyplj/p/15166224.html

Mybatis-plus操作数据库进行增删改查具体参考:https://www.cnblogs.com/luckyplj/p/15421975.html

1.7.数据库连接池

 Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。

阿里 Druid为SpringBoot 提供专门的start依赖,Mybatis 使用 Druid 相对比较简单,我们只需要引入 Druid 的starter 依赖并添加相关的一些配置即可。

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.24</version>
        </dependency>

        <!--druid-spring-boot-starter只是在druid基础上进行了一次封装,专门用来整合spring-boot项目-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.24</version>
        </dependency>

1.8.lombok

lombok既是一个IDE插件,也是一个项目要依赖的jar包.

lombok是项目需要依赖jar包的原因:因为编译时要用它的注解.
lombok是插件的原因是他要在编译器编译时通过操作AST(抽象语法树)改变字节码生成.也就是说他可以改变java语法. 他不像spring的依赖注入或者hibernate的orm一样是运行时的特性,而是编译时的特性.
        <!--Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>

1.9 commons-io

Apache Commons IO是由Apache Foundation创建和维护的Java库。 它提供了许多类,使开发人员可以轻松地完成常见任务并且减少样板代码。

commons-io是一款处理io流的工具库,封装了很多处理io流和文件的方法,可以大大简化我们处理io流和操作文件的代码.

API链接:http://commons.apache.org/proper/commons-io/apidocs/index.html

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.11.0</version>
</dependency>

1.10 commons-lang3

Apache Commons Lang是Apache最著名的JAVA库 (GitHub上的代码库),它是对java.lang的很好扩展,包含了大量非常实用的工具类,其中用的最多的有StringUtils,DateUtils,NumberUtils等。

(1)commons-lang3和commons-lang的区别

lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持java5的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3。lang包可以说是废弃了,以后请不要使用。采用lang3直接代替即可。

其中用的最多的有StringUtils,DateUtils,NumberUtils、ArrayUtils等。

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.4</version>
</dependency>

 2. application.yml文件常用配置

#application.yml为基本配置文件
server:
  port: 7010

mybatis-plus:
  # xml扫描,多个目录用逗号或者分号分隔(告诉 Mapper 所对应的 XML 文件位置)
  mapper-locations: classpath*:mapper/**/*Mapper.xml
  # 以下配置均有默认值,可以不设置
  global-config:
    db-config:
      logic-not-delete-value: 1
      logic-delete-value: 0
  configuration:
    # 是否开启自动驼峰命名规则映射:从数据库列名到Java属性驼峰命名的类似映射
    map-underscore-to-camel-case: true
    # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    auto-mapping-behavior: full
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    url: jdbc:mysql://localhost:3306/day1?serverTimezone=Asia/Shanghai&useSSL=false
    username: root
    password: plj824
    driver-class-name: com.mysql.cj.jdbc.Driver
    #druid连接池配置
    druid:
      #初始化连接大小
      initial-size: 5
      #最大连接池数量
      max-active: 20
      #最小连接池数量
      min-idle: 3
      #配置获取连接等待超时时间,单位毫秒
      max-wait: 60000
      #配置间隔多久才进行一次检查看,检查需要关闭的空闲连接,单位毫秒
      time-between-eviction-runs-millis: 60000
      #配置一个连接在池中最小的生存时间,单位毫秒
      min-evictable-idle-time-millis: 300000
      validation-query: select 'x'
      #建议配置为true,不影响性能,并且保证安全性,申请连接的时候检测
      test-while-idle: true
      #获取连接时执行检测,建议关闭,影响性能
      test-on-borrow: false
      #归还连接时执行检测,建议关闭,影响性能
      test-on-return: false
      #检测连接是否有效的超时时间
      validation-query-timeout: 10

参考文献:
https://www.jianshu.com/p/2093dd0168b9
https://blog.csdn.net/qq_35812160/article/details/78241340
原文地址:https://www.cnblogs.com/luckyplj/p/15603899.html