SpringBoot整合thymeleaf 报错的解决方案

2021-08-01
近日 在springboot项目中使用thymeleaf时,莫名报了以下错误: 在网上查找文章明白了报错的原因,这是由于如果使用thymeleaf 为模板,那么解析时就要求html必须为严格的html5格式,即必须有完整的结束标记, 不然就会报错. 在html页面中,诸如input,meta,link等标签 ,是可以不用闭合就可以被解析的(自闭合的),但是由于这里严格要求html5格式 于是解决办法如下: 1) 在报错的标签上加入 结束标签. 2) 修改为不严格的模式. 在配置文件中加入如下配置

maven 在执行package,install,deploy时使用clean与不使用clean的不同之处

2021-08-01
有时候用mvn install后,新改的内容不生效,一定要后来使用mvn clean install 才生效,由于之前没有做记录,以及记不清是什么情况下才会出现的问题,于是想看看clean和不clean的区别. 就如大家知道的,maven在执行一个生命周期的命令的是时候将会执行之前的所有生命周期操作,比如执行mvn install,会执行前面一系列的动作包括 compile ,package , test 等,具体请查看maven的官方文档.这个特性使maven的命令更加简洁易用. 再来分析原来

一篇文章带你深入了解Java基础(3)

2021-08-01
目录 1.方法的基本定义 2.方法重载 3.方法的递归调用 4.面向对象的前身是面向过程 5.类与对象 总结 1.方法的基本定义 限制条件:本次所讲解的方法指的是在主类中定义,并且由主方法由主方法直接调用. 方法是指就是一段可以被重复调用的代码块. 在java里面如果想要进行方法的定义,则可以使用如下的方法进行完成. public static 方法返回值 方法名称([参数类型 变量,....]){ 方法体代码 ; return [返回值]; } 在定义方法的时候对于方法的返回值由以下两类:vo

mongodb的安装和开机自启动详细讲解

2021-08-01
mongodb的安装和开机自启动 第一步[下载安装包] 1.去mongodb的官网下载相应的安装包(http://www.mongodb.org)找到相应的版本下载 2.如果有网络的话直接使用命令下载(wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.0.tgz) 第二步[解压压缩包] tar zxvf mongodb-linux-i686-1.8.0.tgz 最好给解压的文件夹改个名字,方便操作 mv mongodb-lin

关于React Native使用axios进行网络请求的方法

2021-07-31
在前端开发中,能够完成数据请求的方式有很多,如Ajax.jQuery ajax.axios和fetch等.不过,随着技术的发展,现在能够看到的基本上也就axios和fetch两种. axios是一个基于Promise的Http网络库,可运行在浏览器端和Node.js中,Vue应用的网络请求基本都是使用它完成的.axios有很多优秀的特性,如支持请求的拦截和响应.取消请求.JSON自动转换.客户端防御XSRF等. 使用axios之前,需要先在项目中安装axios插件,安装命令如下. //npm n

mybatis3中@SelectProvider传递参数方式

2021-07-31
mybatis3 @SelectProvider传递参数 一.通常情况下我喜欢使用实体或者vo去传参数 这样在Provide的方法中可以直接通过#{param}(param为你实体中的字段)来获取你要的参数. 二.使用map传参数 在超过一个参数的情况下,@SelectProvide方法必须接受Map<String, Object>做为参数, 如果参数使用了@Param注解,那么参数在Map中以@Param的值为key,如下例中的userId: 如果参数没有使用@Param注解,那么参数在Ma

python字典进行运算原理及实例分享

2021-07-31
说明 1.字典运算中的键必须是不可变类型,如整数(int).浮点数(float).字符串(str).元组(tuple)等. 2.列表(list)和集合(set)不能作为字典中的键,当然字典本身也不能作为字典中的键,因为字典也是可变类型,但字典可以作为字典中的值. 实例 student1 = { 'id': 1010, 'name': '小明', 'sex': 'True', 'birthday': '2000-1-1' } #遍历字典中的键 for key in student1: ""

Java之ThreadPoolExecutor类详解

2021-07-31
ThreadPoolExecutor ThreadPoolExecutor是线程池框架的一个核心类,线程池通过线程复用机制,并对线程进行统一管理 降低系统资源消耗.通过复用已存在的线程,降低线程创建和销毁造成的消耗: 提高响应速度.当有任务到达时,无需等待新线程的创建便能立即执行: 提高线程的可管理性.线程是稀缺资源,如果无限制的创建,不仅会消耗大量系统资源,还会降低系统的稳 定性,使用线程池可以进行对线程进行统一的分配.调优和监控. 线程池的运行状态总共有5种,其值和含义分别如下: RUNNI

python3操作redis实现List列表实例

2021-07-31
目录 下面是具体例子详解和代码: ①lrange(key , start , stop) ②lpush(key , value) ③rpush(key , value) ④lpop(key) ⑤rpop(key) ⑥blpop(key) ⑦brpop(key) ⑧brpoplpush(source,destination,timeout) ⑨lindex(key,index) ⑩linsert(key,before|after,privot,value) ①①llen(key) ①②lpushx

Java不能真正泛型的原因是什么?

2021-07-31
目录 简单来回顾一下类型擦除,看下面这段代码. 为什么 Java 不能实现真正意义上的泛型呢?背后的原因是什么? 第一,兼容性 第二,不是"实现不了" 总结 简单来回顾一下类型擦除,看下面这段代码. public class Cmower { public static void method(ArrayList<String> list) { System.out.println("Arraylist<String> list"); } p

C++实现LeetCode(167.两数之和之二 - 输入数组有序)

2021-07-31
[LeetCode] 167.Two Sum II - Input array is sorted 两数之和之二 - 输入数组有序 Given an array of integers that is already sorted in ascending order, find two numbers such that they add up to a specific target number. The function twoSum should return indices of t

java实现手写一个简单版的线程池

2021-07-31
有些人可能对线程池比较陌生,并且更不熟悉线程池的工作原理.所以他们在使用线程的时候,多数情况下都是new Thread来实现多线程.但是,往往良好的多线程设计大多都是使用线程池来实现的. 为什么要使用线程 降低资源的消耗.降低线程创建和销毁的资源消耗.提高响应速度:线程的创建时间为T1,执行时间T2,销毁时间T3,免去T1和T3的时间提高线程的可管理性 下图所示为线程池的实现原理:调用方不断向线程池中提交任务:线程池中有一组线程,不断地从队列中取任务,这是一个典型的生产者-消费者模型. 要实现一

一篇文章教你如何用多种迭代写法实现二叉树遍历

2021-07-31
目录 思想 实现 总结 思想 利用栈和队列都可以实现树的迭代遍历.递归的写法将这个遍历的过程交给系统的堆栈去实现了,所以思想都是一样的.无非就是插入值的时机不一样.利用栈的先进先出的特点,对于前序遍历.我们可以先将当前的值放进结果集中,表示的是根节点的值.然后将当前的节点加入到栈中.当前的节点等于自己的left.再次循环的时候.也会将left作为新的节点.直到节点为空.也就是走到了树的最左边.然后回退.也就是弹栈..也可以认为回退的过程是从低向上的.具体就是让当前的节点等于栈弹出的right.继

一篇文章带你学习Mybatis-Plus(新手入门)

2021-07-31
目录 Mybatis-Plus 1.快速入门地址:安装 | MyBatis-Plus (baomidou.com) 2.创建数据库mybatis-plus 3.创建springboot项目,配置yml文件 4.导入依赖 5.创建pojo包,新建User实体类 6.创建mapper包,新建UserMapper实体类 7.在主启动类中加上Mapperscan注解扫描mapper映射文件 8.查询所有数据测试类 9.开启mybatis-plus日志配置文件 10.主键生成策略 11.增加数据测试类 1

使用 python 实现单人AI 扫雷游戏

2021-07-31
AI玩扫雷 很高兴又见面了!

基于JPA中的@Basic注解详解

2021-07-31
今天我们来聊聊JPA @Basic注解的使用 1.介绍: @Basic 是实体类与数据库字段映射时最简单的类型.在该注解的介绍中: The <code>Basic</code> annotation can be applied to a persistent * property or instance variable of any of the following types: Java * primitive types, wrappers of the primitive

解决Lombok注解不起作用的问题

2021-07-31
Lombok注解不起作用 场景: 减少实体类中如Getter,Setter方法的书写 原因: lombok是一个第三方插件,我们使用时需要进行两个步骤(两个步骤缺一不可): 1:引入lombok依赖 2: 安装lombok插件 作用: Lombok是一个第三方插件,通过它我们可以直接书写注解来代替原来的getter,setter,toString等方法. 深入理解Lombok 说道Lombok,可能会鲜为人知.但是在实际的开发中,它起到了很大的作用,话不多说,直入正题: 一.Lombok是什么

MySQL千万级数据表的优化实战记录

2021-07-31
前言 这里先说明一下,网上很多人说阿里规定500w数据就要分库分表.实际上,这个500w并不是定义死的,而是与MySQL的配置以及机器的硬件有关.MySQL为了提升性能,会将表的索引装载到内存中.但是当表的数据到达一定的量的时候,会导致内存无法存储这些索引,无法存储索引,就只能进行磁盘IO,从而导致性能下降. 实战调优 我这里有张表,数据有1000w,目前只有一个主键索引 CREATE TABLE `user` ( `id` int(10) NOT NULL AUTO_INCREMENT, `u

一篇文章带你了解JAVA面对对象三大特征之封装

2021-07-31
目录 面对对象的三大特征: 封装.继承.多态 封装 继承 多态 类和对象 关于类 关于对象 三大特征第一封装 关于封装思想 : private关键字 this关键字 构造方法 构造方法注意事项 总结 面对对象的三大特征: 封装.继承.多态 封装 封装是把客观事物抽象成类,并且把自己的属性和方法让可信的类或对象操作,对不可性的隐藏. 继承 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 1. 继承得到的新类称为"子类"或"

使用roolup构建你的lib(实现步骤)

2021-07-31
概述 Rollup, 和 Webpack, Parcel 都是模块打包工具(module bundler tool), 但是侧重点不同, 我们要聊的 Rollup更加适合用于构建lib 而 Webpack, Precel 更加适合开发应用.本文,将结合一个简单的例子说说如何使用Rollup构建自己的lib. 实现目标 创建一个完整的rollup的lib工程: 区分开发和生产配置,方便开发测试: 引入第三方库(如:ol),并实现第三方库的打包: 实现步骤 一 rollup基础 1. 初始化工程 c