当前位置: 首页 > news >正文

SpringBoot 入门 SpringBoot 与其他项目整合 集成 Druid 数据库连接池 集成 Log 日志 配置修改

目录

1.SpringBoot简介

1.1.什么是SpringBoot

1.2.特点

2.SpringBoot快速入门

2.1.创建SpringBoot项目

2.2.项目目录介绍

2.3.配置修改

2.4.启动SpringBoot

3.SpringBoot与其他项目整合

3.1.整合JDBC

3.2.整合Druid数据库连接池

3.3.整合MyBatis

3.4.整合Log日志

3.5.整合PageHelper


1.SpringBoot简介

众所周知 Spring 应用需要进行大量的配置,各种 XML 配置和注解配置让人眼花缭乱,且极容易出错,因此 Spring 一度被称为“配置地狱”。为了简化 Spring 应用的搭建和开发过程,Pivotal 团队在 Spring 基础上提供了一套全新的开源的工具,它就是Spring Boot。

只是为了提升Spring开发者的工具,特点:敏捷式、快速开发。

1.1.什么是SpringBoot

Spring Boot 是由 Pivotal 团队提供的全新框架,2014 年 4 月发布 Spring Boot 1.0 2018 年 3 月 Spring Boot 2.0发布。它是对spring的进一步封装,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。怎么简化的呢?就是通过封装、抽象、提供默认配置等方式让我们更容易使用。

  SpringBoot 基于 Spring 开发。SpringBoot 本身并不提供 Spring 框架的核心特性以及扩展功能,也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具

  关于 SpringBoot 有一句很出名的话就是约定大于配置。采用 Spring Boot 可以大大的简化开发模式,它集成了大量常用的第三方库配置,所有你想集成的常用框架,它都有对应的组件支持,例如 Redis、MongoDB、Jpa、kafka,Hakira 等等。SpringBoot 应用中这些第三方库几乎可以零配置开箱即用,大部分的 SpringBoot 应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

1.2.特点

  • 独立运行的 Spring 项目

Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。

  • 内嵌 Servlet 容器

Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。

  • 提供 starter 简化 Maven 配置

Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。

  • 提供了大量的自动配置

Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。

  • 自带应用监控

Spring Boot 可以对正在运行的项目提供监控。

  • 无代码生成和 xml 配置

Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。

2.SpringBoot快速入门

2.1.创建SpringBoot项目

打开Idea点击 + Create New Project,选择 Spring Initializr

点击Next下一步。

点击Next下一步。

点击Next下一步,最后点击Finish即可完成SpringBoot项目的创建。

2.2.项目目录介绍

包和类不能乱改,只能在com.zking.springboot01建子包,因为程序只加载Application.java所在包及其子包下的内容。

  • src/main/java:主程序入口 Application,可以通过直接运行该类来启动SpringBoot应用

  • src/main/resources:配置目录,该目录用来存放应用的一些配置信息,比如应用名、服务端口、数据库配置等。由于我们应用了Web模块,因此产生了 static目录与templates目录,前者用于存放静态资源,如图片、CSS、JavaScript等;后者用于存放Web页面的模板文件。

  • src/test:单元测试目录,生成的 ApplicationTests 通过 JUnit4实现,可以直接用运行 SpringBoot应用的测试。

  • application.properties/application.yml:用于存放程序的各种依赖模块的配置信息,比如:服务端口,数据库连接配置等。

2.3.配置修改

server:# 配置端口port: 8080# 项目名servlet:context-path: /

2.4.启动SpringBoot

默认情况下,SpringBoot 项目会创建一个名为 Application 的主程序启动类,该类中使用了一个组合注解 @SpringBootApplication,用来开启 Spring Boot 的自动配置,另外该启动类中包含一个 main() 方法,用来启动该项目。

直接运行启动类 HelloworldApplication 中的 main() 方法,便可以启动该项目,结果如下图:

注意:Spring Boot 内部集成了 Tomcat,不需要人为手动配置 Tomcat,开发者只需要关注具体的业务逻辑即可。

为了能比较的清楚的看到效果,我们在 com.zking.springboot01 包下又创建一个 controller 包,并在该包内创建一个名为 HelloController 的 Controller,代码如下:

@RestController
public class HelloController {
​@RequestMapping("/hello")public String hello(){return "Hello SpringBoot!!!";}
}

重启 SpringBoot 项目,然后在地址栏访问 “http://localhost:8080/hello”

3.SpringBoot与其他项目整合

3.1.整合JDBC

配置pom.xml,导入依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
​
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.44</version>
</dependency>

重启SpringBoot项目后,将会提示以下错误:

请修改application.yml或application.properties文件,添加以下配置:

spring:datasource:driver-class-name: com.mysql.jdbc.Drivertype: com.zaxxer.hikari.HikariDataSourceurl: jdbc:mysql://localhost:3306/vue?useUnicode=true&characterEncoding=utf8username: rootpassword: 1234

3.2.整合Druid数据库连接池

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

配置pom.xml,导入依赖:

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.15</version>
</dependency>

请修改application.yml或application.properties文件,添加以下配置:

spring:datasource:#1.JDBCtype: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverurl: jdbc:mysql://localhost:3306/vue?useUnicode=true&characterEncoding=utf8&useSSL=falseusername: rootpassword: 1234druid:#2.连接池配置#初始化连接池的连接数量 大小,最小,最大initial-size: 5min-idle: 5max-active: 20#配置获取连接等待超时的时间max-wait: 60000#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒time-between-eviction-runs-millis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒min-evictable-idle-time-millis: 30000validation-query: SELECT 1 FROM DUALtest-while-idle: truetest-on-borrow: truetest-on-return: false# 是否缓存preparedStatement,也就是PSCache  官方建议MySQL下建议关闭   个人建议如果想用SQL防火墙 建议打开pool-prepared-statements: truemax-pool-prepared-statement-per-connection-size: 20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filter:stat:merge-sql: trueslow-sql-millis: 5000#3.基础监控配置web-stat-filter:enabled: trueurl-pattern: /*#设置不统计哪些URLexclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"session-stat-enable: truesession-stat-max-count: 100stat-view-servlet:enabled: trueurl-pattern: /druid/*reset-enable: true#设置监控页面的登录名和密码login-username: adminlogin-password: adminallow: 127.0.0.1#deny: 192.168.1.100

启动SpringBoot项目访问Druid,访问地址:http://localhost:端口号/项目名称/druid/

3.3.整合MyBatis

配置pom.xml,导入依赖:

<dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version>
</dependency>

MyBatis-Spring-Boot-Starter依赖将会提供如下:

  • 自动检测现有的DataSource。

  • 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入参数进行传递。

  • 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。

  • 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中。

就是说,使用了该Starter之后,只需要定义一个DataSource即可(application.properties或application.yml中可配置),它会自动创建。

请修改application.yml或application.properties文件,添加以下配置:

#mybatis配置
mybatis:#配置SQL映射文件路径mapper-locations: classpath:mapper/*.xml#配置别名type-aliases-package: com.zking.项目名.model

在启动类上添加@MapperScan注解:

@MapperScan({"com.zking.springboot01.mapper"})
@SpringBootApplication
public class SpringBoot01Application {public static void main(String[] args) {SpringApplication.run(SpringBoot01Application.class,args);}
}

3.4.整合Log日志

配置pom.xml,导入依赖:

#log日志配置
logging:level:#指定项目目录输入日志信息com.zking.项目名.mapper: debug

3.5.整合PageHelper

配置pom.xml,导入依赖:

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.3.0</version>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>

请修改application.yml或application.properties文件,添加以下配置:

#pagehelper分页插件配置
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: count=countSql

相关文章:

  • Python从入门到精通秘籍五
  • ssm基于vue的儿童教育网站的设计与实现论文
  • 解决ELK日志收集中Logstash报错的关键步
  • NI PXIe-6386国产替代,8路AI(16位,14 MS/s/ch),2路A​O,24路DIO,PXI多功能I/O模块
  • 恢复 iPhone 和 iPad 数据的 10 个好工具 - [苹果数据恢复]
  • TongLINKQ(1):TongLINKQ概述
  • 【Java 设计模式】设计原则之合成聚合复用原则
  • Oracle JDK 8 中的 computeIfAbsent 方法及实践
  • 【计算机网络 谢希仁 第八版笔记】第三章 数据链路层
  • 【IDEA】瑞_IDEA模版注释设置_IDEA自动生成注释模版(详细图文步骤)
  • AIGC视频生成:Pika1.0快速入门详解
  • 如何查询MySQL中的树型表
  • 【Java万花筒】打破Java Web迷雾:探索Servlet、JSP、Spring、MyBatis、Hibernate的奥秘
  • 【K8S 存储卷】K8S的存储卷+PV/PVC
  • City Terrace Pack
  • $translatePartialLoader加载失败及解决方式
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • dva中组件的懒加载
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Fastjson的基本使用方法大全
  • JavaScript-Array类型
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • java架构面试锦集:开源框架+并发+数据结构+大企必备面试题
  • Mysql5.6主从复制
  • PHP 的 SAPI 是个什么东西
  • python 装饰器(一)
  • 彻底搞懂浏览器Event-loop
  • 想使用 MongoDB ,你应该了解这8个方面!
  • 小程序测试方案初探
  • 一、python与pycharm的安装
  • UI设计初学者应该如何入门?
  • ​Python 3 新特性:类型注解
  • ​ssh免密码登录设置及问题总结
  • #图像处理
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (22)C#传智:复习,多态虚方法抽象类接口,静态类,String与StringBuilder,集合泛型List与Dictionary,文件类,结构与类的区别
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (TOJ2804)Even? Odd?
  • (二)Linux——Linux常用指令
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (篇九)MySQL常用内置函数
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四) Graphivz 颜色选择
  • (转)母版页和相对路径
  • *Django中的Ajax 纯js的书写样式1
  • .NET CLR Hosting 简介
  • .Net Remoting(分离服务程序实现) - Part.3
  • .pings勒索病毒的威胁:如何应对.pings勒索病毒的突袭?
  • @SpringBootApplication 包含的三个注解及其含义
  • @WebService和@WebMethod注解的用法
  • [ C++ ] STL_stack(栈)queue(队列)使用及其重要接口模拟实现
  • [2019/05/17]解决springboot测试List接口时JSON传参异常