springboot 原生java_SpringBoot---目前Java开发最流行的框架(二)

【SpringBoot】

八、Spring Boot整合Druid

1、数据库连接池回顾

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

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

2、Druid

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

3、代码实现

3.1 添加依赖

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

org.springframework.boot

spring-boot-starter-parent

2.1.13.RELEASE

com.alibaba

druid-spring-boot-starter

1.1.10

org.springframework.boot

spring-boot-starter-web

org.springframework.boot

spring-boot-starter-test

org.mybatis.spring.boot

mybatis-spring-boot-starter

2.1.1

mysql

mysql-connector-java

8.0.11

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%2B8username: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:123456mybatis:mapper-locations:classpath:mybatis/*.xml

九、Spring Boot整合PageHelper

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

1、添加依赖

com.github.pagehelper

pagehelper-spring-boot-starter

1.2.12

2、编写代码

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

//pageNumber为当前页码 pageSize为页大小PageHelper.startPage(pageNumber,pageSize);

//查询全部List list = tbItemMapper.selectAll();

// 构造方法参数必须是查询全部的结果。否则无法知道给哪个sql后面拼接limit//PageInfo是分页查询所有查询结果封装的类,所有的结果都从这个类取PageInfo 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的依赖。

1、Logback读取配置文件的步骤

(1)在classpath下查找文件logback-test.xml

(2)如果文件不存在,则查找logback.xml

十一、Spring Boot整合JSP

1、添加依赖

org.apache.tomcat.embed

tomcat-embed-jasper

provided

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

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

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

2、在 yml配置文件中配置视图解析器参数

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

十二、SpringBoot整合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启动器

org.springframework.boot

spring-boot-starter-thymeleaf

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页面中标签为

3.1 th:text属性

向HTML标签内部输出信息。

3.2 th:value

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

3.3 th:if

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

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

3.4 th:each

循环遍历.

示例中u为迭代遍历。

th:each=”u,i :${list}” 其中i表示迭代状态。① index:当前迭代器的索引 从0开始

② count:当前迭代对象的计数 从1开始

③ size:被迭代对象的长度

④ even/odd:布尔值,当前循环是否是偶数/奇数 从0开始

⑤ first:布尔值,当前循环的是否是第一条,如果是返回true否则返回false

⑥ last:布尔值,当前循环的是否是最后一条,如果是则返回true否则返回false

编号 姓名

3.5 th:href

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

3.6 th:onclick

点击传递参数的单击事件

3.7 字符串操作

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

使用内置对象的语法

1)引用内置对象需要使用#

2)大部分内置对象的名称都以s结尾。如:strings、numbers、dates

3.8 日期格式化处理

3.9 操作域对象

3.9.1 HttpServletRequest

3.9.2 HttpSession

3.9.3 ServletContext

你可能感兴趣的:(springboot,原生java)