新建SpringBoot Maven项目中pom常用依赖配置及常用的依赖的介绍1.springboot项目的总(父)依赖大全parent artifactIdspring-boot-dependencies/artifactId groupIdorg.springframework.boot/groupId version2.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 groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependencyspring-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 groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter/artifactId /dependency因为spring-boot-starter-web包含了spring-boot-starter等可以点进去看看3.junit测试创建项目时会自动引入该依赖用于编写springboot Test测试类SpringBoot Test测试类的使用dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope /dependency4.mysql数据配置配置mysql依赖时不写版本号xx.xx.xx的话就会引入mysql依赖的默认版本SpringBoot2.1.x以后默认使用的是mysql 8版本SpringBoot2.1.x之前默认使用的是mysql 5.x版本在配置数据源的时候就有差异了:配置低版本 5.xx.xxspring.datasource.driver-class-namecom.mysql.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3306/student?useUnicodetruecharacterEncodingUTF-8useSSLfalse spring.datasource.usernameroot spring.datasource.password123456配置高版本 8.xx.xxspring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver spring.datasource.urljdbc:mysql://localhost:3306/student?serverTimezoneGMT%2B8useUnicodetruecharacterEncodingUTF-8useSSLfalse spring.datasource.usernameroot spring.datasource.password123456 !--MySQL 连接组件-- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId scoperuntime/scope /dependency5.mybatis数据处理层持久层框架连接数据库着重点放在了编写sql上而不是通过jdbc传统方式来不断操作Connection、Statment、ResultSet注解Mapper 指定映射接口application.yaml配置文件中配置自动识别的xmlmybatis:mapper-locations: classpath:mapper/**/*.xmltype-aliases-package: run.leave.mapper!--MyBaits-- dependency groupIdorg.mybatis.spring.boot/groupId artifactIdmybatis-spring-boot-starter/artifactId version2.1.2/version /dependency8.Druid连接池druid和druid-spring-boot-starter 的区别与报错Cannot resolve configuration property ‘spring.datasource.xxx解决!--Druid-- !--可以不配这个因为druid-spring-boot-starter里面已经有了随便带着一下这个依赖代码可读性高一点反正对其他啥也没影响-- dependency groupIdcom.alibaba/groupId artifactIddruid/artifactId version1.2.8/version /dependency !-- Druid Spring Boot 组件-- dependency groupIdcom.alibaba/groupId artifactIddruid-spring-boot-starter/artifactId version1.2.8/version /dependency在yaml文件中配置使用spring: datasource: # 数据源基本配置 url: jdbc:mysql://localhost:3306/hotel?useUnicodetruecharacterEncodingutf-8serverTimezoneAsia/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.mergeSqltrue;druid.stat.slowSqlMillis5007.Json格式转换工具FastjsonFastjson 是一个 Java 库可以将 Java 对象转换为 JSON 格式当然它也可以将 JSON 字符串转换为 Java 对象。Java中 Json、String、jsonObject、jsonArray格式之间互相转换dependency groupIdcom.alibaba/groupId artifactIdfastjson/artifactId version1.2.78/version /dependency8.lombooklombok最优秀的就是注解了一个注解就干掉了很多代码实体类中的注解.Data 直接可以省略了Get、Set方法Slf4j 不需要单独引入日志依赖和配置日志直接 log.info( ) 打印日志如何在IDE编译器 中使用lombok插件idea中可以直接在编译器中搜索下载就不多阐述了eclipse则需要从官网下载lombok.jar包然后双击启动jar包逐步操作指向eclisp.exe重启eclipse即可!--LomBok-- dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId /dependency9.面向切面编程AOP支持的注解AspectJ、Pointcut、通知注解如Before、After等、Aspect和自定义注解spring-boot-starter-aop及其使用场景说明SpringBoot 中的 Aop 注解使用 自定义注解!--Spring Boot Aop-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-aop/artifactId /dependency10.Validation校验参数的实现支持的注解MaxMin等常用注解和demo!--Spring Validation-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-validation/artifactId /dependency11.Actuator 监控主要是服务器运维使用开发过程不常用springboot 监控 Actuator 的设置!--Spring Boot Actuator-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-actuator/artifactId /dependency12.hutool工具包提供了很多封装方法供开发者使用!--Hutool-- dependency groupIdcn.hutool/groupId artifactIdhutool-all/artifactId version5.4.7/version /dependency13.jupiter其依赖包含了junit-jupiter-api、junit-jupiter-engine、junit-vintage-engineJunit-jupiter-api 和 junit-jupiter-engine 的区别总结Junit4,Junit5,Jupiter之间的联系值得一看!--Junit-- dependency groupIdorg.junit.jupiter/groupId artifactIdjunit-jupiter/artifactId scopetest/scope /dependency14.打包配置用于生成部署到服务器的包JAVA项目在服务器部署过程build plugins plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId executions execution goals goalrepackage/goal /goals /execution /executions /plugin /plugins /build15.多yaml文件配置指定其使用那个文件,不配置下面的profiles但创建的文件格式形如这样也是可用的在这里插入图片描述在这里插入图片描述在这里插入图片描述profiles profile iddev/id activation activeByDefaulttrue/activeByDefault /activation properties profilesActivedev/profilesActive /properties /profile profile idpro/id properties profilesActivepro/profilesActive /properties /profile /profiles16.使用properties标签统一编码和JAVA版本!--统一编码和JAVA版本-- properties project.build.sourceEncodingUTF-8/project.build.sourceEncoding maven.compiler.source1.8/maven.compiler.source maven.compiler.target1.8/maven.compiler.target java.version1.8/java.version /properties17.mybatis-plus在mybatis基础上的升级版工具避免了使用mybatis时需要编写大量的xml文件dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.4.2/version /dependency18.springboot热部署修改java代码后不用重启项目就能直接最新测试省略了不断修改代码不断重启项目的麻烦dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-devtools/artifactId optionaltrue/optional /dependency