- 博客(62)
- 收藏
- 关注
原创 Spring Boot SSH连接数据库
添加依赖 <!--mysql-ssh--> <dependency> <groupId>com.jcraft</groupId> <artifactId>jsch</artifactId> <version>0.1.55</version> </dependency>创建连接import com.jcraft.jsch.JSch.
2021-09-28 15:57:15
1428
转载 python3安装mysqlclient报错,各种依赖都齐全==ERROR: Command errored out with exit status 1:
一、描述在centos7.5中执行pip3 install mysqlclient,报如下错误[root@VM_0_10_centos data]# pip3 install mysqlclientWARNING: Running pip install with root privileges is generally not a good idea. Try pip3 install --user instead.Collecting mysqlclientDownloading http:/
2021-03-28 14:27:53
624
原创 easyExcel用代码生成的模板填充时变量无法被替换
前提:同样的一段填充数据代码问题:代码生成的模板直接使用无法第一个替换变量,但其他值都正常填充解决:将代码生成的模板用Office打开,改动某处再恢复原样,数据便可正常填充原理:目前还不太清楚,望各位大神解答???不胜感激...
2021-02-06 12:53:46
888
3
原创 数据库有值但却报空指针异常的解决
报错代码: private boolean isAllValidConfig(List<CfgTable> listByName){ if (CollectionUtils.isEmpty(listByName)){ return false; } for (CfgTable cfgTable : listByName) { if (cfgTable != null && cf
2020-12-16 11:11:56
4212
1
原创 springboot详细源码解析之异常处理
1. spring boot错误处理原理–源码分析spring boot 错误自动配置源码位置:源码中的几个核心组件:DefaultErrorAttributesBasicErrorControllerErrorPageCustomizerDefaultErrorViewResolverspring boot默认处理错误的步骤:系统发生4xx或5xx错误时,ErrorPageCustomizer就会生效(定制错误的响应规则,获取配置文件中的error.path的值,如果没有配置,默认使
2020-12-05 23:34:45
271
1
原创 springboot异常处理实战
1. 自定义一个异常public class UserNotExistException extends RuntimeException { public UserNotExistException(){ super("用户不存在"); }}2. 定义controller层@Controllerpublic class HelloController { @ResponseBody @RequestMapping("/hello") p
2020-12-05 23:32:16
124
1
原创 mybatis将java枚举类型转换成数据库TINYINT类型
定义枚举类public enum EntityEnum { ACCURATE(0), INACCURATE(1), UNCERTAIN(2); private int value; public void setValue(int value) { this.value = value; } EntityEnum(int value){ this.value = value; } public int getValue() { return value; } p.
2020-11-19 16:22:09
693
转载 [狂神说Java] redis主从复制-哨兵模式
转载地址视频地址主从复制1.简介主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master/leader),后者称为从节点(slave/follower);数据的复制是单向的,只能由主节点到从节点。Master以写为主,Slave 以读为主。默认情况下,每台Redis服务器都是主节点;且一个主节点可以有多个从节点(或没有从节点),但一个从节点只能有一个主节点。主从复制的作用主要包括:1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据
2020-09-12 23:35:27
586
转载 [狂神说Java] redis发布订阅
转载地址视频地址模型Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:示例------------订阅端----------------------127.0.0.1:6379
2020-09-12 20:57:05
185
转载 [狂神说Java] redis事务监控,jedis操作及整合springboot
转载地址视频地址事务Redis事务没有隔离级别的概念Redis的单条命令是保证原子性的,但是redis 事务不能保证原子性Redis事务本质:一组命令的集合。----------------- 队列 set set set 执行 -------------------事务中所有命令都会被序列化,执行过程中按顺序执行,不允许其他命令进行干扰,来执行一系列命令。Redis事务特性:一次性;顺序性;排他性Redis事务操作过程开启事务(multi)命令入队执行事务(exec)所以事务中
2020-09-09 17:38:12
477
转载 [狂神说Java] redis三种特殊数据类型
转载地址视频地址Geospatial(地理位置)使用经纬度定位地理坐标并用一个有序集合zset保存,所以zset命令也可以使用.如列出所有元素,移除元素有效经纬度有效的经度从-180度到180度。有效的纬度从-85.05112878度到85.05112878度。指定单位的参数 unit 必须是以下单位的其中一个:m 表示单位为米。km 表示单位为千米。mi 表示单位为英里。ft 表示单位为英尺。关于GEORADIUS的参数通过georadius就可以完成 附近的人功能withc
2020-09-09 08:18:50
126
转载 [狂神说Java] redis五大基础数据类型
转载地址视频地址内置性能测试工具# 测试:100个并发连接 100000请求redis-benchmark -h localhost -p 6379 -c 100 -n 100000基础知识redis默认有16个数据库,默认使用的第0个;16个数据库为:DB 0~DB 15默认使用DB 0 ,可以使用select n切换到DB n,dbsize可以查看当前数据库的大小,与key数量相关。127.0.0.1:6379> config get databases # 命令行查看数
2020-09-08 23:52:56
208
原创 [狂神说Java]redis在Windows10和Linux下的安装
Windows101.解压压缩文件2.进入压缩文件Linux–CentOS71.下载安装包到本地!redis-5.0.7.tar.gz2.xshell连接Linux,进入到Linux下的指定安装目录,一般习惯为/opt3.直接将压缩文件拖拽进xshell窗口4.解压压缩文件tar -zxvf redis-5.0.7.tar.gz5.进入到解压后的文件,为方便后面修改配置文件,先对redis.conf文件进行备份6.进行必要的环境准备,毕竟redis是c++写的# 安装C++编译
2020-09-08 20:35:48
226
原创 [狂神说Java系列视频]springboot--整合MyBatis-plus(条件构建器,代码生成器,复杂条件查询...)
视频地址官网地址MyBatis特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID
2020-09-07 10:24:02
401
原创 狂神说Java系列视频教程之docker(记录到swarm安装)
安装docker#1.卸载旧版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logro
2020-09-06 19:47:53
571
原创 springboot--任务(异步任务--邮件任务--定时任务)
异步任务只需要添加一个注解,让容器知道这是异步任务即可import org.springframework.scheduling.annotation.Async;import org.springframework.stereotype.Service;@Servicepublic class AsyncService { //告诉spring这是异步方法 @Async public void hello(){ System.out.println("
2020-09-06 18:02:45
137
原创 springboot--整合在线文档生成工具swagger
导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>
2020-09-06 17:38:08
259
原创 spring--整合shiro(纯代码,运行起来根据实现效果学习)
shiro架构图:导入依赖<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target>
2020-09-06 16:41:14
105
原创 springBoot--整合shiro
个人理解:应用在SecurityUtils,规则在配置类,处理在自定义的xxxRealm1.相比于springSecurity来说,shiro安全框架灵活性更大(使用更复杂),地址性更强也更轻便;2.在shiro的使用过程中开发者的主要操作对象时SecurityUtils,通过它来获取用户的信息并进行登录登出操作;3.但实际的授权认证是通过AuthorizingRealm实现的;4.用户通过SecurityUtils进行登陆时会自动调用AuthorizingRealm里面的授权doGetAutho
2020-09-06 11:29:29
83
原创 springBoot--整合springSecurity
个人理解:springSecurity安全框架实现的主要思想时AOP而AOP的底层主要是代理的思想,在不改变主要业务逻辑的前提下对请求等增加授权认证功能。非业务功能:系统的安全属于非业务功能即没有安全相关的内容也不影响系统运行导入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo
2020-09-06 10:18:25
103
原创 springboot--整合Druid数据源,MyBatis和log4j日志输出(与JdbcTemplate 对比)
步骤:导入依赖–>编写配置文件–>与spring boot整合(编写配置文件将DruidDataSource添加到容器由spring接管)环境依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>
2020-09-06 09:47:12
359
原创 springboot--thymleaf启动报错既提到Thymleaf引擎无法解析有提到Interceptor拦截器的问题,最后发现都不是
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2020-09-04 10:24:09
115
原创 springMVC实现文件上传和下载
配置依赖 <!--文件上传--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.3</version> </depend
2020-09-02 22:43:42
86
转载 idea中.yml没有spring的小叶子标志解决办法
idea 项目中.yml文件,不显示树叶图标做如下配置后ok,ctrl+shift+alt+s进入如下界面按照上图操作后一路确认回去,log4j2.yml最终将显示spring的树叶图标!如下图所示
2020-08-30 09:37:01
3967
3
原创 JavaWeb--邮件发送(web注册邮件,纯文本邮件,带图片邮件,带附件邮件)
邮件服务器与传输协议发送邮件:SMTP协议通常把处理用户smtp请求(邮件发送请求)的服务器称之为SMTP服务器(邮件发送服务器)。接收邮件:POP3协议通常把处理用户pop3请求(邮件接收请求)的服务器称之为POP3服务器(邮件接收服务器)。SMTP服务器地址:一般是 smtp.xxx.com,比如163邮箱是smtp.163.com,qq邮箱是smtp.qq.com。发送web注册邮件执行可能会报错java.lang.NoClassDefFoundError: javax/mail/Au
2020-08-29 23:28:02
870
原创 javaweb--文件上传和下载
文件下载文件下载再另一篇博客查看文件上传优化为保证服务器安全,上传文件应该放在外界无法直接访问的目录下,比如WEB-INF目录下。即,只有用户登录后通过路径跳转才能获取为防止文件覆盖的现象发生,要为上传文件生成一个确保唯一的文件名,比如时间戳后缀,UUID后缀,MD5加密,移位算法等限制文件上传的最大值限制上传文件的类型,通过文件名后缀判断是否合法常用方法//isFormFile方法用于判断FileItem类对象封装的数据是一个普通文本表单//还是一个文件表单,如果是普通表单字段则返回
2020-08-29 20:10:14
105
原创 javaweb--servlet是什么->Response(输出信息,下载文件,生成验证码,重定向)->Request(获取参数,请求转发)
我们平时所说的servlet实际上就是实现了servlet接口的Java程序;父级源码:
2020-08-27 21:50:54
150
原创 MySQL执行事务操作(JDBC操作,工具类封装)
1.手动处理事务,关闭自动提交SET autocommit = 0;2.开启事务START TRANSACTION 标记一个事物的开始,从这之后的SQL都在同一个事务之内3.提交:持久化(业务成功完成)COMMIT4.回滚:恢复到原来的样子(业务务失败完成)ROLLBACK5.事务结束SET autocommit = 1 开启自动提交6.了解SAVEPOINT 保存点名称 设置事务的保存点ROLLBACK TO SAVEPOINT 保存点名称 回滚到保存点RELEASE SAVE
2020-08-26 20:08:07
240
原创 安装MySQL5.7(压缩包方式)
1.解压2.把这个包放到自己指定的安装位置3.配置环境变量4.新建MySQL配置文件5.启动管理员模式下的CMD,运行所有命令cd /d D:\JAVAENV\mysql-5.7.23\bin6.安装MySQL服务mysqld -install7.初始化数据库文件mysqld --initialize-insecure --user=mysql8.启动MySQL,进去修改密码net start mysql9.进入MySQLmysql -u root -p提示输入密码直接回车跳过
2020-08-25 21:02:37
138
原创 JUC介绍--理解JMM(Java Memory Mode) -> volatile -> 单例模式 -> CAS-> 原子引用 -> Java中的锁
JMM什么是JMM:Java内存模型,物理上不存在,是一种概念和约定关于JMM的一些同步约定:1.线程加锁前,必须读取主存中的最新值到工作内存中2.线程解锁前,必须把共享变量立刻刷回主存3.加锁和解锁必须是同一把锁内存交互的8种操作内存交互操作有8种,虚拟机实现必须保证每一个操作都是原子的,不可再分的(对于double和long类型的变量来说,load、store、read和write操作在某些平台上允许例外)lock (锁定):作用于主内存的变量,把一个变量标识为线程独占状态
2020-08-25 15:30:30
278
原创 JUC介绍--Future异步回调
异步回调–对比AjaxrunAsync 没有返回值的异步调用正常执行测试:public class FutureAsync { public static void main(String[] args) throws ExecutionException, InterruptedException { //没有返回值的异步调用 runAsync CompletableFuture<Void> completableFuture = Comple
2020-08-23 16:02:47
255
原创 JUC介绍--ForkJoin分支合并
什么是ForkJoin:ForkJoin是jdk1.7后出现的,用于大数据量处理时,并行执行任务,提高效率(把大任务拆分为小任务)ForkJoin特点:工作窃取:A B两个线程同时执行任务,A执行一半,B执行完了,B就会将A的任务拿过来执行,提高效率;实现这一效果的基础是,它们维护的是双端队列,两端都可以去任务。ForkJoin的使用测试:/*求和计算 */public class ForkJoinDemo extends RecursiveTask<Long> .
2020-08-23 10:48:22
184
原创 JUC介绍--Stream流式计算案例
什么是Stream流式计算集合、MySQL 本质都是存储东西的;计算都应该交给流来操作!/** * 题目要求:一分钟内完成此题,只能用一行代码实现! * 现在有5个用户!筛选: * 1、ID 必须是偶数 * 2、年龄必须大于23岁 * 3、用户名转为大写字母 * 4、用户名字母倒着排序 * 5、只输出一个用户! */public class Test { public static void main(String[] args) { .
2020-08-23 00:03:44
148
原创 JUC介绍--四大函数式接口(Function Predicate Consumer Supplier)
函数式接口:只有一个方法的接口Function函数式接口:一个参数,一个返回值源码@FunctionalInterfacepublic interface Function<T, R> {//泛型T:传入的参数类型 泛型R:返回的类型 R apply(T t);//传入一个参数 //一般使用时不考虑default的方法 default <V> Function<V, R> compose(Function<? super V.
2020-08-22 23:10:59
268
原创 JUC介绍--线程池(三大方法 7大参数 4种拒绝策略)
线程池:三大方法 7大参数 4种拒绝策略线程池的好处:降低资源的消耗提高响应的速度方便管理线程复用、控制最大并发数、管理线程三大方法一般不同Executors工具类创建线程池,不安全public class ToolMethods { public static void main(String[] args) { //1. 单个线程 //ExecutorService threadPool = Executors.newSingleThreadExecutor(
2020-08-22 21:59:08
298
原创 JUC介绍--阻塞队列(4组API)
常见队列家族使用阻塞队列的情况:多线程并发处理,线程池阻塞队列的四种API:方式抛出异常有返回值,不抛出异常阻塞 等待超时等待添加add()offer()put()offer(,)移除remove()poll()take()poll(,)判断队列首elementpeek--public class Test { public static void main(String[] args) throws Interrup.
2020-08-22 18:24:22
314
原创 JUC介绍--读写锁
读写锁,是一个更细粒度的锁一般对资源进行操作时,读取资源允许多线程同时占用;但是写入时为了保证数据安全我们要求只有一个线程操作。针对这种境况,在可重入锁的基础上提供了更加细粒度的锁–读写锁。//独占锁--写锁 一次只能被一个线程占有//共享锁--读锁 可以被多个线程占有public class ReadWriteLockDemo { public static void main(String[] args) {// MyCache myCache = new MyCac.
2020-08-22 16:36:47
143
原创 JUC介绍--常用辅助类(CountDownLatch CyclicBarrier Semaphore)
CountDownLatch减法计数器每次有线程调用countDownLatch.countDown()数量就-1数量减到0时,countDownLatch.await()会被唤醒,继续向下执行public class CountDownLatchDemo { public static void main(String[] args) throws InterruptedException { //总数是6,必须要执行任务的时候再使用 CountDownL.
2020-08-22 16:28:33
193
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人