- 博客(896)
- 资源 (51)
- 收藏
- 关注
原创 Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0-CPU版本总结
Windows下安装Anaconda5.3.1+Python3.8+TensorFlow2.13.0CPU版本总结
2023-11-11 20:46:09
982
原创 使用Gradle创建SpringBoot项目
Spring Boot Gradle 插件在Gradle 提供Spring Boot 支持。它允许您打包可执行jar 或war 归档文件,运行SpringBoot 应用程序,并使用Spring-Boot-dependencies 提供的依赖管理。
2023-11-05 15:44:44
173
原创 SpringSecurity对CSRF的支持实践
跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。
2023-07-02 15:49:54
437
1
原创 SpringSecurity实现Remember-Me实践
SpringSecurity实现remember-me的两种方式:基于cookie技术与基于数据库技术。
2023-06-27 18:09:02
356
原创 SpringSecurity请求授权规则配置与注解使用说明
SringSecurity请求授权规则配置与注解使用说明这里主要是重写WebSecurityConfigurerAdapter 的configure方法。① 自定义登录这里与 都可以实现认证成功后跳转的效果,不过具体用法上有所区别。通常建议使用,至于具体区别后面另开章节学习。
2023-06-27 15:13:47
295
原创 SpringSecurity基础入门详解
Spring 是非常流行和成功的 Java 应用开发框架,Spring Security正是Spring家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。正如你可能知道的关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分,这两点也是Spring Security重要核心功能。
2023-06-27 11:34:46
698
原创 npm安装依赖实践总结
# 【1】npm的全局安装路径查看默认值:```bashnpm get prefix```默认是`C:\Users\你的用户名\AppData\Roaming\npm`可以通过 ` npm config prefix` 更改全局安装路径:```bashnpm config set prefix ""```# 【2】 npm install## ① npm install的几种常见方式```bash# 安装模块到项目目录下npm install moduleN
2023-05-11 10:02:04
3000
1
原创 Gradle安装部署与基础入门详解
Gradle 是一款Google 推出的基于JVM、通用灵活的项目构建工具,支持Maven,JCenter 多种第三方仓库;支持传递性依赖管理、废弃了繁杂的xml 文件,转而使用简洁的、支持多种语言(例如:java、groovy 等)的build 脚本文件。
2023-02-17 09:03:43
1254
原创 python学习之pyecharts库的使用总结
其是一个时间轴组件,如下图红框所示,当点击红色箭头指向的“播放”按钮时,会呈现动画形式展示每一年的数据变化。
2023-02-13 16:17:02
1187
原创 python学习之pandas库的使用总结
pivot函数用于从给定的表中创建出新的派生表,pivot有三个参数:索引、列和值。也就是把①中读取的纵表透视为了横表(宽表)。这里得到的data是什么呢?这里会呈现什么格式呢?
2023-02-13 16:07:49
377
原创 Centos7下安装单节点flink1.13
前置环境配置jdk可以参考博文:[Centos7下安装hadoop单节点](https://blog.csdn.net/J080624/article/details/67638594) 。如下图所示,这里我们将flink-1.13.0-bin-scala_2.12.tgz上传到如下路径:解压安装文件到/opt/module下面```bas
2023-02-11 11:22:04
721
原创 认真研究MySQL的主从复制
# 【1】主从复制概述## ① 如何提升数据库并发能力在实际工作中,我们常常将Redis作为缓存与MySQL配合使用,当有请求的时候,首先会从缓存中进行查找。如果存在就直接取出,如果不存在再访问数据库。这样就提升了读取的效率,也减少了对后端数据库的访问压力。Redis的缓存结构是高并发架构中非常重要的一环。此外,一般应用对数据库而言都是“读多写
2023-01-10 17:25:07
981
1
原创 认真学习MySQL中的二进制日志(binlog)与中继日志(Relay log)
binlog即binary log,二进制日志文件,也叫作变更日志(update log)。它记录了数据库所有执行的DDL和DML等数据库更新事件的语句,但是不包含没有修改任何数据的语句(如数据查询语句select、show等)。它以事件形式记录并保存在二进制文件中。通过这些信息我们可以再现数据更新操作的全过程。>如果想要记录所有语句(例如,为了识别有问题的查询),需要使用通用查询日志。**binlog主要应用场景:*** 一是用于数据恢复,如果MySQL数据库意外停止,可以通过二进制日志文件来
2023-01-07 15:43:35
2167
原创 认真学习MySQL中的MVCC机制
什么是MVCC?MVCC(Multiversion Concurrency Control),多版本并发控制。顾名思义,MVCC是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性操作有了保证。换言之,就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,也不是普遍使用的。本文学习InnoDB中MVCC的实现机制(M
2022-12-28 16:47:19
633
原创 认真学习MySQL中锁机制(二)
接上文[认真学习MySQL中锁机制(一)](https://blog.csdn.net/J080624/article/details/78656428)我们继续学习MySQL中的锁机制。# 【5】按加锁的方式划分:显示锁、隐式锁## ① 隐式锁一个事务在执行insert操作时,如果即将插入的间隙已经被其他事务加了gap锁,那么本次insert操作会阻塞,并且当前事务会在该间隙上加一个插入意向锁,否则一般情况下insert操作是不加锁的。那如果一个事务首先插入了一条记录(此时并没有在内存生成与该记录
2022-12-28 10:31:46
671
原创 认真学习MySQL的事务日志-Undo日志
redo log是事务持久性的保证,undo log是事务原子性的保证。在事务中更新数据的前置操作时要先写入一个undo log。事务需要保证原子性,也就是事务中的操作要么全部完成,要么什么也不做。但有时候事务执行到一半会出现一些情况,比如:* 情况一:事务执行过程中可能遇到各种错误,比如服务器本身的错误,操作系统错误,甚至是突然断电导致的错误。* 情况二:程序员可以在事务执行过程中手动输入ROLLBACK语句结束当前事务的执行。以上情况出现,我们需要把数据改回原先的样子,这个过程称之为回滚。这
2022-12-20 17:48:27
842
1
原创 认真学习MySQL的事务日志-Redo日志
事务有4中特性:原子性、一致性、隔离性和持久性。那么事务的四种特性到底是基于什么机制实现呢?* 事务的隔离性由锁机制执行。* 事务的原子性、一致性和持久性由事务的redo日志和undo日志来保证。redo log称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。undo log称为回滚日志,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。需要说明的是,undo 不是redo的逆过程,redo 和 undo都可以视为一种恢复操作,但是有所区别。* redo
2022-11-30 12:31:39
963
原创 MySQL调优之关联查询、子查询优化
**多表 JOIN 连接操作时,创建索引注意事项总结**首先,连接表的数量尽量不要超过 3 张,因为每增加一张表就相当于增加了一次嵌套的循环,数量级增长会非常快,严重影响查询的效率。其次,对 WHERE 条件创建索引,因为 WHERE 才是对数据条件的过滤。最后,对用于`连接的字段创建索引`,并且该`字段在多张表中的类型必须一致`。比如 course_id 在 student_info 表和 course 表中都为 int(11) 类型,而不能一个为 int 另一个为 varchar 类型。如果
2022-10-31 21:38:03
3349
原创 MySQL调优之索引在什么情况下会失效?
MySQL中提高性能的一个最有效的方式是对数据表设计合理的索引。索引提供了高效访问数据的方法,并且加快查询的速度,因此索引对查询的速度有着至关重要的影响。* 使用索引可以快速地定位表中的某条记录,从而提高数据库查询的速度,提高数据库的性能。* 如果查询时没有使用索引,查询语句就会扫描表中的所有记录。在数据量大的情况下,这样查询的速度回很慢。大多数情况下都(默认)采用B+树来构建索引。只是空间列类型的索引使用R-树,并且MEMORY表还支持hash索引。其实,用不用索引,最终都是优化器说了算。优化
2022-10-30 14:02:24
2113
2
原创 MySQL调优之大表处理探索那些事
当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下:* 限定数据的范围: 务必禁止不带任何限制数据范围条件的查询语句。比如:我们当用户在查询订单历史的时候,我们可以控制在一个月的范围内。;* 优化SQL和索引* 缓存: 使用MySQL的缓存,另外对重量级、更新少的数据可以考虑使用应用级别的缓存如Redis;* 读/写分离: 经典的数据库拆分方案,主库负责写,从库负责读;* MySQL自带的分区表。无需更改代码,但是sql语句是需要针对分区表做优化的,sql条件中要
2022-10-24 09:53:57
773
原创 认真学习InnoDB的行格式
我们平时的数据以行为单位来向表中插入数据,这些记录在磁盘上的存放方式也被称为`行格式`或者`记录格式`。InnoDB存储引擎设计了4中不同类型的行格式,分别是Compact、Redundant、Dynamic和Compressed行格式。查看MySQL默认行格式:```sql# 查看变量show VARIABLES like '%innodb_default_row_format%'# 查看MySQL系统变量select @@innodb_default_row_format```也可
2022-10-09 21:54:07
849
原创 认真学习InnoDB的数据存储结构
索引结构给我们提供了高效的索引方式,不过索引信息以及数据记录都是保存在文件上的,确切说是存储在页结构中。另一方面,索引是在存储引擎中实现的,MySQL服务器上的存储引擎负责对表中数据的读取和写入工作。不同存储引擎中存放的格式一般是不同的,甚至有的存储引擎比如Memory都不用磁盘来存储数据。由于InnoDB是MySQL的默认存储引擎,所以我们有必要认真学习。# 【1】数据库的存储结构-页## ① 概述**InnoDB将数据划分为若干个页,InnoDB中页的大小默认为16KB**。以页作为磁盘和内
2022-10-07 12:48:02
630
原创 认真学习MySQL的逻辑架构
MySQL是典型的CS架构,即client/Server架构,服务器端程序使用的 mysqld。不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本(SQL语句),服务器进程处理后再向客户端进程发送一段文本(处理结果)。那服务器进程对客户端进程发送的请求做了什么处理,才能产生最后的处理结果呢?这里以查询请求为例展示:文件,这些记录过程叫做二进制日志事件,binary log events。* slave将master的binary log event拷贝到它的中继日志(relay log)。* slave重做中继日志中的事件,将改变应用到自己的数据库中**复制的基本原则*** 每个slave只有一个master*
2022-09-15 15:25:32
506
原创 MySQL调优之show profile 应用
show profile是MySQL提供可以用来分析当前会话中语句执行的资源消耗情况,可以帮助进行SQL问题的诊断。**查看配置**```sqlshow variables like '%profiling%'# 本文这里如下have_profiling YES //是否支持profileprofiling OFF // OFF表示关闭,默认关闭profiling_history_size 15 // 记录最近15条语句```可以使用命令`set globa
2022-09-14 15:55:21
550
原创 MySQL调优之慢查询日志应用
慢查询日志是用于记录SQL执行时间超过某个临界值的SQL日志文件,可用于快速定位慢查询,为我们的SQL优化做参考。具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10秒以上的SQL语句。**查看是否开启**```sqlshow variables like '%slow_query_log%'# 本文这里结果如下slow_query_log ONslow_query_log_file DESK
2022-09-14 13:49:40
665
原创 MySQL查询优化之order by 、 group by与分页查询优化
order by 子句尽量使用index方式排序(即using index),避免使用filesort方式排序(即using filesort)。Index方式效率高,它指MySQL扫描索引本身完成排序,filesort则效率低。**order by满足两种情况,会使用 index 方式排序:*** order by语句使用索引最左前列(最左匹配法则)* where子句和order by子句条件列组合满足最左匹配法则下面给出几个实例来说明,如下所示我们创建表并为其创建组合索引(c1,c2,c3)
2022-09-07 18:04:59
2448
1
原创 MySQL中最左匹配相关实践总结
首先回顾一下什么是最左匹配(也有称之为最左前缀)?顾名思义:最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、
2022-09-05 11:01:33
458
原创 认真研究ConcurrentHashMap中的元素统计策略
这里我们想研究的是jdk1.8中ConcurrentHashMap的`addCount(long x, int check)`方法。如下所示在put方法的最后会触发`addCount(long x, int check)`方法进行元素个数的统计。我们再回顾一下另一个参数binCount :* 在操作链表的分支if (fh >= 0)中 用于统计
2022-08-30 15:16:12
731
转载 前后端分离时跨域的一些问题与解决方案
# 【1】什么是跨域?## 同源策略同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port)浏览器的同源策略阻止了浏览器读取不同源的资源。这种
2022-04-25 13:05:47
1138
原创 Linux项目实践异常总结
【1】tail: inotify cannot be used, reverting to polling: Too many open files使用tail查看日志报的错误,使用命令查看异常线程:[root@VM-8-2-centos tomcat8080]# lsof | awk '{ print $2; }' | sort -rn | uniq -c | sort -rn | head 13114 28695 3312 6785 3312 4692 3312 31762
2022-03-14 19:23:48
1539
原创 Linux下不同版本的服务处理
Linux服务器,服务管理--systemctl命令详解,设置开机自启动。syetemclt就是service和chkconfig这两个命令的整合,在CentOS 7就开始被使用了。Centos6及以前是service命令。systemctl 是系统服务管理器命令,它实际上将 service 和 chkconfig 这两个命令组合到一起。|任务 | 旧指令| 新指令 ||--|:--|:--||使某服务自动启动 |chkconfig --level 3 httpd on |systemctl
2022-03-05 09:33:32
297
原创 SpringMVC常见组件之DataBinder数据绑定器分析
什么是数据绑定?简单一句话就是把请求中参数信息绑定到目标方法的参数上。数据绑定是参数解析过程中的一部分。如下图所示:那么这里我们就要研究一下数据绑定相关的那些组件。【1】绑定工厂WebDataBinderFactory工厂嘛,使用了工厂方法设计模式,只有一个抽象方法用来让子类实现以创建一个WebDataBinder实例。public interface WebDataBinderFactory { WebDataBinder createBinder(NativeWebRequest webRe
2021-11-05 15:47:50
2409
原创 认真学习设计模式之组合模式(Composite Pattern)
【1】概述组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式。组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象。① 三大组件Component :这是组合中对象声明接口,在适当情况下,实现所有类共有的接口默认行为,用于访问和管理Component 子部件,
2021-11-04 18:47:22
270
原创 Java中静态代理使用与原理详解
相关博文:Java中动态代理使用与原理详解CGLIB动态代理使用与原理详解【1】概述代理模式是为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象代理模式有不同的形式, 主要有三种静态代理、动态代理(JDK 代理、接口代理)和Cglib 代理(可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。静态
2021-11-04 16:13:31
388
原创 认真学习设计模式之状态模式(State Pattern)
【1】概述状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。这个模式将状态封装成独立的类,并将动作委托到 代表当前状态的对象,我们知道行为会随着内部状态而改变。一个对象“看起来好像修改了它的类”是什么意思呢?从客户的视角来看:如果说你使用的对象能够完全改变它的行为,那么你会觉得,这个对象实际上是从别的类实例化而来的。然而,实际上,你知道我们是在使用组合通过简单引用不同的状态对象来造成类改变的假象。① UML类图Context是一个类,它可以拥有一些内部状态。State接
2021-11-03 10:14:38
263
DubboOPS项目和管理后台jar包
2018-11-07
Struts2Spring4Hibernate4整合
2018-11-07
输入一段英文,去掉符号后将英文单词排序输出
2021-12-23
PHP课程设计图书管理系统、学生成绩管理系统、学生宿舍管理系统
2020-11-27
SpringBoot+thymeleaf+UEditor+不修改上传路径.zip
2020-02-04
jdk6-8String类
2019-11-20
dhcp+c3p0.zip
2019-10-27
Netty权威指南 第2版 带书签目录 高清完整版.pdf
2018-11-20
SpringBoot整合Dubbo和Zookeeper升级版
2018-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人