引入thymeleaf做视图解析:



引入依赖:






补充,设置工程访问路径:


====
建个新项目,做测试:



跳转:


改成重定向,避免刷新导致表单重新提交:

做个简单的逻辑判断:





登陆后在页面显示用户名:

=====
完善一下页面:

拦截器机制:
创建,配置拦截器:



补充,打印日志(引入lombok之后,直接加注解就可打印):


=================
文件上传功能:





修改文件大小的参数:

错误页面统一管理:

打印错误信息:

=======
原生组件注入:
servlet:

在主程序上加个注解,就可以扫描到三大组件:

注入filter组件:

注入liatener:

=====
第二种方式注入三大组件:


filter的第一种写法:
传入的参数是mysevlet,这样myfilter拦截的就跟myservlet拦截的路径是一样的:

第二种写法是自己写拦截路径:


====
定制化:
配置类:




=======================
数据库开发:
第一步:导入依赖

数据库驱动的版本要跟数据库相对应:

第二种改版本的方法是:

配置数据源,用yaml:

修改配置项:

测试:


====
自定义数据库连接池:
第一种方法:
引入依赖:

写一个配置类:

测试:


开启监控功能:


配置一个监控器:

===
配置防火墙:

添加进入监控页的账号密码:

======================
第二种方法:
用starter引入druid:


个性化配置就要去配置文件里:




============
整合mybatis:
引入依赖:


创建一个mybatis的全局配置文件:

创建一个与数据库表对应的bean:

创建一个接口,调用方法:

创建SQL映射文件:

整合起来:

测试:
创建一个service:


给mybatis全局配置文件配置上驼峰命名:

用另一种方式配置mybatis,就是在yaml文件中(如果要在yaml文件中配置mybatis的属性,就不能指定mybatis的全局配置文件了):

小结:

============
mybatis纯注解:
导入starter,
补充:在创建项目时,用初始化框架,也能整合mybatis:

创建一个表:

创建一个bean:

创建一个接口:

创建一个service:

控制器运行:

用混合模式,就是注解跟配置文件一起用:
加了usegeneratedkeys属性就可以传回表中自增的id属性值。


如何用注解写稍微复杂点的sql:

小结:

为了省去接口上的@mapper注解,可以在主程序上加一个扫描注解:

===========
mybatis-plus:
安装mybatisx插件。
创建一个新表:


引入mybatis-plus依赖:

jdbc的依赖就可以省去了(整合mybatis的时候就可以省去了):

mybatis的场景也可以省去了:


本来应该要配置数据源的,但是之前已经配好了:

创建一个bean和mapper:



测试:

出现异常,需要在bean中的属性中加注解:
表示这些属性在表中不存在:

用一个注解指明bean对应的哪张表:

规范的操作应该是创建一个service接口,然后创捷一个实现类,实现其中方法:




发送请求:



还要配置一个分页拦截器才能让分页显示正确:

做点设置:

==
创建删除功能:


===========
运用redis:
导入依赖:



购买redis:

申请公网连接:


看视频69.
配置redis:

测试redis:


因为连接不上, 配置文件换个写法:

如果要切换底层操作的客户端,换成jedis,就要引入依赖:

并且在配置文件中声明:

创建一个拦截器,通过redis统计访问的数据:

在配置类中要添加一个拦截器,拦截所有请求但是放行静态资源:


获取数据:



最后要释放实例:

================
单元测试:

现在在springboot中用单元测试很方便:
引入依赖:

加两个注解





@beforeeach:是在每个测试之前运行

@aftereach:是在每个测试之后运行

==



================
断言机制:


测试:


可以自己添加提示语:


数组断言:
组合断言:
断言都成功才算成功:

异常断言:

快速失败:

整个单元测试跑一遍,出报告:


==============

嵌套测试:






======================
指标监控:(主要还是看视频77)

引入依赖:


常用监控端点:

默认关闭,单点开启:

定制endpoint:


===
添加一个可视化监控界面:
创建个新项目,
引入依赖:


换一个监控的端口:


在需要被检测的项目中引入依赖:

配置要发送指标的地址:

加点配置:

====
高级特性:

因为一个项目会在好几个不同环境下运行,创建好几个配置文件:
然后通过配置文件激活相应的配置环境:

也可以用命令行修改配置,在你打完jar包还想修改配置的时候,在保存这个jar包的文件夹下(配置文件中的内容都可以这么改):


===
条件装配:
准备一个bean:

然后把person变成接口,让两个类去继承:



加了这个注解,这个bean就只会在test环境下生效:

写在配置类中,加注解,在不同环境中生效:

分组激活(这样就激活了myprod组,ppd和prod都被激活了):

==================
外部化配置:
可以从电脑的环境配置中取得值:


====
自定义starter

创建一个新项目,添加模块:

有点复杂,看视频83
原文:https://www.cnblogs.com/jmfy/p/14804420.html