点击观看Sping Boot完整视频教程

一、Spring Boot整合Druid

1. 数据库连接池回顾

在内存中一块空间,空间中放置N多个数据库连接对象。对象可以是处于活动状态,也可以是空闲(Idle)状态的。数据库获取连接对象时不在从数据库中获取连接对象,而是从数据库连接池中获取到连接对象,当获取到连接对象后,对象处于活动状态(Active),当连接对象使用完成后,在代码中进行连接关闭,实际上是把连接对象从活动状态变为空闲状态,不是真正的关闭。

在频繁访问数据库(访问频率特别高的)的应用中,使用数据库连接池效率高。

2. Druid

Druid是由阿里巴巴推出的数据库连接池。它结合了C3P0、DBCP、PROXOOL等数据库连接池的优点。之所以从众多数据库连接池中脱颖而出,还有一个重要的原因就是它包含控制台。

3. 代码实现

3.1 添加依赖

此依赖版本一定不能太高,否则和数据库驱动不匹配,无法访问控制台页面。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.13.RELEASE</version>
</parent><dependencies><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.11</version></dependency>
</dependencies>

3.2 编写配置文件

其中spring.datasource.type就告诉程序使用druid连接池。

spring:datasource:# 使用阿里的Druid连接池type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.cj.jdbc.Driver# 填写你数据库的url、登录名、密码和数据库名url: jdbc:mysql://127.0.0.1:3306/tingyu?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
username: rootpassword: rootdruid:# 连接池的配置信息# 初始化大小,最小,最大initial-size: 5min-idle: 5maxActive: 20# 配置获取连接等待超时的时间maxWait: 60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒timeBetweenEvictionRunsMillis: 60000# 配置一个连接在池中最小生存的时间,单位是毫秒minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1testWhileIdle: truetestOnBorrow: falsetestOnReturn: false# 打开PSCache,并且指定每个连接上PSCache的大小poolPreparedStatements: truemaxPoolPreparedStatementPerConnectionSize: 20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙filters: stat,wall,slf4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000# 配置DruidStatFilterweb-stat-filter:enabled: trueurl-pattern: "/*"exclusions: "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*"# 配置DruidStatViewServletstat-view-servlet:url-pattern: "/druid/*"# IP白名单(没有配置或者为空,则允许所有访问)allow: 127.0.0.1,192.168.163.1# IP黑名单 (存在共同时,deny优先于allow)deny: 192.168.1.188#  禁用HTML页面上的“Reset All”功能reset-enable: false# 登录名login-username: admin# 登录密码login-password: 123456
mybatis:mapper-locations: classpath:mybatis/*.xml

二、Spring Boot整合PageHelper

Spring Boot整合PageHelper不需要做任何配置文件的配置,添加依赖后就可以直接使用。

1. 添加依赖

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.2.12</version>
</dependency>

2. 编写代码

代码中一定要注意,要把PageHelper.startPage()写在上面。

//pageNumber为当前页码 pageSize为页大小
PageHelper.startPage(pageNumber,pageSize);
//查询全部
List<POJO> list = tbItemMapper.selectAll();
// 构造方法参数必须是查询全部的结果。否则无法知道给哪个sql后面拼接limit
//PageInfo是分页查询所有查询结果封装的类,所有的结果都从这个类取
PageInfo<TbItem> pi = new PageInfo<>(list);
System.out.println(pi.getList());
System.out.println(pi.getTotal());

三、Spring Boot整合logback

  • Spring Boot默认使用Logback组件作为日志管理。Logback是由log4j创始人设计的一个开源日志组件。
  • 在Spring Boot项目中我们不需要额外的添加Logback的依赖,因为在spring-boot-starter或者spring-boot-starter-web中已经包含了Logback的依赖。

Logback读取配置文件的步骤

  1. 在classpath下查找文件logback-test.xml
  2. 如果文件不存在,则查找logback.xml

四、Spring Boot整合JSP

1. 添加依赖

<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope>
</dependency>

2. 在项目中创建webapp目录并将其设置为资源目录

1)在项目中新建webapp/WEB-INF目录

2)设置工作目录,如果在IDEA中项目结构为聚合工程。那么在运行jsp是需要指定路径。如果项目结构为独立项目则不需要。

3)在 yml配置文件中配置视图解析器参数

4)在控制类中声明单元方法请求转发jsp资源

五、Spring Boot整合Thymeleaf

1. Thymeleaf介绍

Thymeleaf的主要目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易地协作。Thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本。

长期以来,jsp在视图领域有非常重要的地位,随着时间的变迁,出现了一位新的挑战者:Thymeleaf,Thymeleaf是原生的,不依赖于标签库.它能够在接受原始HTML的地方进行编辑和渲染.因为它没有与Servelet规范耦合,因此Thymeleaf模板能进入jsp所无法涉足的领域。

Thymeleaf在Spring Boot项目中放入到resources/templates中。这个文件夹中的内容是无法通过浏览器URL直接访问的(和WEB-INF效果一样),所有Thymeleaf页面必须先走控制器。

2. 使用步骤

2.1 在pom.xml中添加Thymeleaf启动器

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

2.2在resources下新建templates文件夹。新建index.html

html页面随意写句话,以免访问index.html是空白页。

2.3新建控制器

此处方法返回值为页面名称。

@RequestMapping("/showIndex")
public String showIndex(){System.out.println("执行index");return "index";
}

3. Thymeleaf语法

为了有提示,修改html页面中<html>标签为

<html xmlns:th="http://www.thymeleaf.org" >

3.1 th:text属性

向HTML标签内部输出信息。

<!--直接向标签内部填充内容,清空原有内容 -->
<span th:text="jqk"></span>
<!-- 从作用域中获取name输入到标签内部 -->
<span th:text="${name}"></span>

3.2 th:value

表单元素,设置HTML标签中表单元素value属性时使用。

<input type="text" th:value="${name}"/>

3.3 th:if

进行逻辑判断。如果成立该标签生效(显示),如果不成立,此标签无效(不显示)。

注意:判断条件中逻辑判断符号写在${}外面的

<span th:if="${name}!='张三'">会显示</span>

3.4 th:each

循环遍历.

示例中u为迭代遍历。

th:each=”u,i :${list}” 其中i表示迭代状态。

  1. index:当前迭代器的索引 从0开始
  2. count:当前迭代对象的计数 从1开始
  3. size:被迭代对象的长度
  4. even/odd:布尔值,当前循环是否是偶数/奇数 从0开始
  5. first:布尔值,当前循环的是否是第一条,如果是返回true否则返回false
  6. last:布尔值,当前循环的是否是最后一条,如果是则返回true否则返回false
<table border="1" width="500"><tr><td>编号</td><td>姓名</td></tr><tr th:each="u : ${list}"><td th:text="${u.id}" ></td><td th:text="${u.name}"></td></tr>
</table>

3.5 th:href

设置href属性的。取值使用@{ }取值

<a th:href="@{/getParam(id=1,name='bjsxt')}" >跳转</a>
<!-- 获取作用域值-->
<a th:href="@{/getParam(name=${name})}">跳转二</a>

3.6 th:onclick

点击传递参数的单击事件

<th><a href="javascript:viod(0)"  th:onclick="'del('+${stu.sid}+')'">删除</a></th>

3.7 字符串操作

Thymeleaf提供了一些内置对象,内置对象可直接在模板中使用。这些对象是以#引用的。

使用内置对象的语法:

  • 引用内置对象需要使用#
  • 大部分内置对象的名称都以s结尾。如:strings、numbers、dates

3.8 日期格式化处理

3.9 操作域对象

3.9.1 HttpServletRequest

3.9.2 HttpSession

3.9.3 ServletContext

springboot获取原生js请求_七节课带你学会SpringBoot,第三课相关推荐

  1. springboot获取原生js请求_springboot跳转原生html

    项目结构 pom xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mave ...

  2. mysql 创建表_每天10分钟带你学会MySQL(三)表的创建

    要掌握的要点: 表通过CREATE TABLE语句创建而成. 表和列的命名要使用有意义的文字. 指定列的数据类型(整数型.字符型和日期型等). 可以在表中设置约束(主键约束和NOT NULL约束等). ...

  3. 进一步封装axios并调用其读取数据(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)

    注意!!!(修改于2020年7月18日) 在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据 报错截图如下 报错内容: {&quo ...

  4. 用原生JS实现网页调用系统自带的分享功能

    流量当下的网络大环境,如何让我们的网站更容易出现在网民的视野中?这里我们就用原生JS实现网页调用系统自带的分享功能,为网页增加一个分享功能! 语法参数: url 要共享的 URL( USVString ...

  5. 总结获取原生JS(javascript)的父节点、子节点、兄弟节点

    关于原生JS获取节点,一直是个头疼的问题,而且调用方法的名字又贼长了,所以我选择用JQ,好像跑题了-- 话不多说看代码 获取父节点 及 父节点下所有子节点(兄弟节点) <ul><li ...

  6. springboot获取多个请求参数_springboot获取URL请求参数的多种方式

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交. /** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @pa ...

  7. sd.js帮助您简化繁重的获取数据、存储数据(CRUD)骚操作(吐槽~在安卓9.0以下或者IOS10.X以下手机端H5页面不支持,在这两种情况下的系统只能使用ajax或者原生js请求后台数据)

    原生sd.js---------------------------------------------------------------- const API_ROOT_URL = "h ...

  8. springboot启动不了_七款高Star的开源SpringBoot扩展,助你的代码水平更上一层楼

    易于使用且功能强大,这是很多开发者选择 SpringBoot 框架进行 Web 开发的原因,作为最流行的 Java 框架之一,当然少不了围绕它的诸多优质开源项目,今天 Gitee 介绍的就是七款非常实 ...

  9. springboot 获取web服务端口_我是这样使用SpringBoot(WEB服务)

    前面完成了API服务(虽然这个API没什么用).接下去来个WEB服务,在前面项目中加上个页面.这章目标是通过访问一个URL展示一个界面,从服务端传递参数值到界面中展示动态数据.这里还会涉及到webja ...

最新文章

  1. operator模块
  2. Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境
  3. Markdown编辑器模板
  4. leetcode206. 反转链表
  5. 中国网建java发送短信_短信验证登陆-中国网建提供的SMS短信平台
  6. vue中多行文本标签_vue控制多行文字展开收起的实现示例
  7. python中else在循环中的使用(一分钟读懂)
  8. css margin
  9. java基础_day02
  10. 数据库系统异常排查之DMV(转)
  11. jQuery形式可以计算,它包含了无线电的变化价格,select价格变化,删除行动态计算加盟...
  12. Pytorch学习笔记(7)——模型放GPU上经常报CUDA错该怎么办
  13. LINUX无法定位软件包
  14. 谷歌地图网页版_如何在网站嵌入谷歌地图
  15. 重磅出击: Rancher 2.4.x 迁移自定义 k8s 集群
  16. Java程序实现繁体字转换简体字
  17. python求因子个数_python怎么求因数
  18. The Nicest Word(io优化)
  19. 三年级江苏凤凰出版社计算机,苏教版小学信息技术三年级下册教案全集
  20. oracle 生成随机姓名_Oracle生成随机日期时间

热门文章

  1. FastDFS设置开机启动
  2. jQuery拼接页面元素
  3. python数据库编程dbf_python读写dbf文件
  4. 【数据结构-树】4.图解平衡二叉树和哈夫曼编码(逐步演绎,一文读懂)
  5. golang的错误汇总
  6. 这 12 款 IDEA 插件你用过几款?
  7. 国内程序员最容易发音错误的单词集合
  8. java11正式发布了,让java代码更完美
  9. 归并排序算法 C++实现与时间复杂度(考过)恋上数据结构笔记
  10. Oracle三种循环:for,while,do...while(PL/SQL)