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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/621691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排序算法-堆排序(含C语言代码示例)

一、算法介绍 堆排序是一种基于二叉堆数据结构的排序算法。首先&#xff0c;构建最大堆&#xff08;或最小堆&#xff09;&#xff0c;将待排序的数组视作一个完全二叉树&#xff0c;通过从最后一个非叶子节点开始向上调整&#xff0c;使得每个父节点的值都大于等于&#xff08…

科研绘图(四)火山图

火山图是生物信息学中常用的一种图表&#xff0c;用来显示基因表达数据的变化。它通常将每个点表示为一个基因&#xff0c;x轴显示对数比率&#xff08;log ratio&#xff09;&#xff0c;表示基因表达的变化大小&#xff1b;y轴显示-log10(p-value)&#xff0c;表示变化的统计…

跨镜动线分析丨用AI解读顾客行为,助力零售企业运营与增长

步入数字时代&#xff0c;先进技术让传统零售焕发新生。智慧零售以用户为中心&#xff0c;“人”的数据化价值将反哺生产、渠道、销售、运营全场景。 悠络客正式推出“跨镜动线分析”&#xff0c;运用AI技术&#xff0c;深度分析顾客的进店、逛店等一系列行为&#xff0c;助力零…

host没有管理员权限

1 以管理员身份运行 Windows PowerShell 2 输入 notepad C:\Windows\System32\drivers\etc\hosts 3在自动弹出的host文件里添加信息&#xff0c;然后保存即可

求射线与三角形交点(C#代码Unity环境下测试通过)

上代码&#xff1a; bool RayCrossTriAngle(Ray ray, Vector3 p1, Vector3 p2, Vector3 p3, out Vector3 point) {point Vector3.zero;Vector3 normal Vector3.Cross(p2 - p1, p3 - p1);float t -Vector3.Dot((ray.origin - p1), normal) / Vector3.Dot(ray.direction, nor…

Fluids —— Viscosity: honey

目录 Fixed viscosity: honey Point variable viscosity: honey Fixed viscosity: honey SOP FLIP提供的粘性解释器&#xff0c;可对恒定或变化的粘性&#xff1b;以下是恒定粘性的蜂蜜模拟&#xff0c;蜂蜜的特性与粘度和表面张力等参数相关&#xff0c;可观察到典型的缠绕和…

C#中类型的转换

类型转换 什么是类型转换 类型转换 就是不同变量类型之间的相互转换 类型转换--隐式转换 隐式转换的基本规则--不同类型之间自动转换 大范围装小范围 知识点一 相同大类之间的转换 有符号 long-->int-->short-->sbyte 无符号 ulong-->uint-->ushort-->…

机器学习周报第28周

目录 摘要Abstract一、文献阅读1.题目&#xff1a;2.摘要3.问题描述4.过去方案5.论文方案6.论文模型7.相关代码 摘要 本周阅读了一篇混沌时间序列预测的论文&#xff0c;论文模型主要使用的是时间卷积网络&#xff08;Temporal Convolutional Network&#xff0c;TCN&#xff…

【ARM 嵌入式 编译系列 3.4 -- 查看所依赖库文件的路径 详细介绍】

文章目录 问题背景库文件路径查看库文件路径信息打印显示连接标准库不使用标准库 libgcc.a问题背景 在自己构建的 Makefle系统中对 cortex-m33 代码编译时,在链接阶段总是报出下面问题 ... arm-none-eabi-ld: cannot find libgcc.a: No such file or directory arm-none-eab…

c++关键字static

1. 静态成员变量和函数并不依赖于类的任何对象&#xff0c;它们是类的属性&#xff0c;因此不需要通过类的对象访问&#xff0c;可以通过类名直接访问。 2. 静态成员变量和函数是公有的&#xff0c;可被所有对象访问&#xff0c;但是无法访问类的非静态成员。 3. 静态成员变量…

2624. 蜗牛排序

说在前面 &#x1f388;不知道大家对于算法的学习是一个怎样的心态呢&#xff1f;为了面试还是因为兴趣&#xff1f;不管是出于什么原因&#xff0c;算法学习需要持续保持。 题目描述 请你编写一段代码为所有数组实现 snail(rowsCount&#xff0c;colsCount) 方法&#xff0c;…

5.Pytorch模型单机多GPU训练原理与实现

文章目录 Pytorch的单机多GPU训练1)多GPU训练介绍2)pytorch中使用单机多GPU训练DistributedDataParallel(DDP)相关变量及含义a)初始化b)数据准备c)模型准备d)清理e)运行 3)使用DistributedDataParallel训练模型的一个简单实例 欢迎访问个人网络日志&#x1f339;&#x1f339;知…

数学建模day15-时间序列分析

时间序列也称动态序列&#xff0c;是指将某种现象的指标数值按照时间顺序排列而成的数值序列。时间序列分析大致可分成三大部分&#xff0c;分别是描述过去、分析规律和预测未来&#xff0c;本讲将主要介绍时间序列分析中常用的三种模型&#xff1a;季节分解、指数平滑方法和AR…

【Java-随笔】常用依赖

Jsoup https://mvnrepository.com/artifact/org.jsoup/jsoup <!-- "Jsoup"依赖项 --> <dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.15.3</version> </dependency>H…

Mysql运算符

文章目录 比较运算符< > !IS NULL \ IS NOT NULL \ ISNULLLEAST() \ GREATEST() 查询数据大小&#xff08;字典序&#xff09;BETWEEN...AND...IN (SET) \ NOT IN (SET)LIKE 模糊查询REGEXP \ RLIKE 逻辑运算符逻辑运算符&#xff1a; OR &#xff08;||&#xff09;、A…

二分算法有关题目与解析

二分算法最重要的就是边界问题&#xff0c;边界一定要确定好&#xff0c;并且自己也要清晰&#xff0c;要不然就会混乱。 什么时候用到二分呢&#xff1f;当涉及到快速筛选有序序列的时候就应该想到&#xff0c;其实二分也经常跟排序算法结合着一起使用 关键模板 一个是确立…

SQL安全:常见手段

前面我们从基础的单表查询一直聊到优化&#xff0c;讲了SQL的很多内容。这一节我们来说说怎么让我们的数据库变得更安全。 为了实现常见的业务场景&#xff0c;数据库会提供很多的功能。有一些功能如果被攻击者利用&#xff0c;就很容易获取到不应该让其获取到的信息。比如uni…

演示kotlin的structured concurrency简化并发异步操作

文章目录 准备http客户端同步调用异步调用structured concurrency用例与机制浅析补充说明 用springboot的 kotlin demo&#xff0c;帮助理解structured concurrency简化异步并发调用的机制 准备http客户端 使用同时支持同步和异步调用的java.net.http.HttpClient Configurat…

vue笔记之$listeners

含义 将事件从父组件传递到子组件 作用 可以实现孙组件的数据传递到爷组件中去 示例 爷组件 <template><div id"app">我是爷组件<h3>{{ fromSunData }}</h3><fu fromSun"fromSun"></fu></div> </templ…

python期末考试:python的基本使用

1. 以下关于Python语言技术特点的描述中&#xff0c;错误的是&#xff08; &#xff09;。 A. 对于需要更高执行速度的功能&#xff0c;例如数值计算和动画&#xff0c;Python语言可以调用C语言编写的底层代码 B. Python比大部分编程语言具有更高的软件开发产量和简洁性 C. …