自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 问答 (1)
  • 收藏
  • 关注

原创 微信云托管部署springboot和vue保姆级教程

是微信团队提供的以云原生为基础的,免运维、高可用服务上云解决方案,无需服务器,1分钟即可部署小程序/公众号服务端。微信云托管支持目前绝大多数语言/框架项目,开发者可以从服务器平滑迁移;并且微信云托管的自动运维和扩缩容特性,无需开发者关心服务的可用性,专注于业务,极大节省人力和服务资源成本。同时,微信云托管还集成持续交付部署,DevOps自动化,安全鉴权等众多能力,致力于帮助没有深层运维经验的业务开发者和研发团队,用最低的成本,打造出稳定性高,安全性强的后端服务。

2024-03-28 23:39:12 1142 4

原创 Tinymce 5 插入代码集成highlight.js(踩坑记录)

实现以上效果,按照官方文档的教程,引入会报错误,hljs,是因为我们没有安装 highlight.js。官方样式文件,可能会与富文本编辑器原本冲突,如果出现样式不生效,在样式文件夹!我是下载了一个jsquery插件文件,不仅需要引入为$,还需要在函数里面设置复制。3. 初始化编辑器,引入代码高亮插件:"becodesample"安装后还需要在plugin.min.js里面第一行。这时候还有报一个editor.$找不到这个函数,这两个js都要引入,才会有插入代码图表。1. 引入 tinymce 库文件。

2023-12-18 12:30:42 574

原创 2023最新Java获取微博cookie,可用于爬取文章(扫码登录)

控制层这里因为要集成到网页设计,第一步先是要把二维码url返回给前端,前端src渲染,渲染之后扫码,扫码完成后前端需要再次确认,将我们第一步返回给前端qrid再次返回给后端。首先拼接上alt和时间戳发送请求,返回是三个链接,三个链接之中两个没有action=login的,这个一定要拼上,没有的话cookie无效。这里测试的话可以使用控制台输出的base64,用一些网页工具类,将base64转成图片,扫码后,就能输出完成cookie。控制层,这里的R是自己封装的,可以根据你的系统自己改。

2023-12-11 11:27:23 1121 1

原创 poi-tl word模版生成、动态表格、坑点合集

(2)如果你的是要发布到inux的spring项目,或者为了可用性,将模版存放在resource文件夹下面,这个时候就要配置maven文件,因为打jar包的时候,会将你的word文件默认压缩,通过maven构建文件不对后缀docx的文件压缩过滤,这样文件打包之后就不会损坏。以下就是普通模版生成的三个方法,其中一个为主方法,调用生成。新建一个word文档,{{}}这种格式,里面放替换的字母,将map集合替换内容设置好,交给poi-tl渲染。(1)如果你的模版存放在你c盘之类的,是不用再去配置maven文件。

2023-09-11 14:24:41 1909

原创 java maven项目打jar包发布(精简版)

可能会报这个错误,是因为MySQL GPG [密钥]已过期导致。具体用ls看系统解压出来的文件夹名,修改了方便配置环境变量。用下面命令修复,再重新执行安装mysql5.7。第一个是启动,第二是开机自启动,第三个是启动状态。2、输入不挂掉命令,在输入一个空格,就可以退出。target文件夹下面有生成一个jar包。1、使用xftp传输jar包到指定位置。因为有密码安全的校验,但是也可以设置。9、建立root远程用户并授权。先clean再package。11、用工具进行远程连接。没有vim,可以用vi。

2023-08-24 23:24:41 824

原创 Java多线程(一)

是指从软件或者硬件上实现多个线程并发执行的技术。

2023-07-09 17:39:58 358

原创 java面向对象-继承、方法重写

继承是面向对象三大特征之一,可以使得子类具有父类的属性和方法,还可以在子类中重新定义,以及追加属性和方法。

2023-07-07 21:50:54 1143

原创 java网络编程、TCP和UDP、三次握手和四次挥手

(1)概念在网络通信协议下,不同计算机上运行的程序,可以进行数据传输。

2023-07-06 21:37:15 578

原创 git介绍和使用

Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。代码回溯、版本切换、多人协作、远程备份本地仓库:开发人员自己电脑上的 Git 仓库远程仓库:远程服务器上的 Git仓库commit:提交将本地文件和版本信息保存到本地仓库push:推送将本地仓库文件和版本信息上传到远程仓库pull:拉取将远程仓库文件和版本信息下载到本地仓库。

2023-07-03 19:54:01 1699

原创 mysql性能优化

type 显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge >unique_subquery > index_subquery > range > index > ALL,UNION 语句的type 值为一般为ref,OR 语句的type 值为range,可以看到这是一个很明显的差距。通过query 日志,我们可以分析业务的逻辑,业务特点。

2023-07-02 23:37:22 214

原创 Linux 虚拟机共享文件夹不显示,全能简单解法!

如果输入了提示没有找到/mnt/hgfs文件夹,那就使用root权限进入mnt里面创建一个hgfs文件夹。

2023-04-19 20:24:42 1762 2

原创 L2-042 老板的作息表(极短代码)

题目:新浪微博上有人发了某老板的作息时间表,表示其每天 4:30 就起床了。但立刻有眼尖的网友问:这时间表不完整啊,早上九点到下午一点干啥了?本题就请你编写程序,检查任意一张时间表,找出其中没写出来的时间段。

2023-04-16 20:47:35 835

原创 字节跳动第五届青训营后端练习题——分割ip(Java版)

给定一个字符串 s,非数字的字符可替换为任意不包含在本字符串的数字,同样的字符只能替换为同样的数字,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 '.' 来形成。例如:"0.1.2.201" 和 "192.168.1.1" 是有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是无效 IP 地址。代码:回溯思想,利用map容器去重且使重复字符替换相同数字。输出:114.252.240.37。

2023-01-05 21:32:44 707

原创 Maven的高级应用:分模块、依赖管理、聚合与继承、属性管理、多环境配置、私服

(1)团队开发现状私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题NexusSonatype公司的一款maven私服产品Download(2)Nexus安装与启动启动服务器(命令行启动)访问服务器(默认端口:8081)修改基础配置信息安装路径下etc目录中nexus-default.properties文件保存有nexus基础配置信息,例如默认访问端口。修改服务器运行配置信息。

2022-11-13 21:30:39 324

原创 SpringBoot(三):基础SpringBoot实现SSM整合、JUnit

SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区,或在MySQL数据库端配置时区解决此问题。(1)创建新模块,选择Spring初始化,并配置模块相关基础信息(之前文章有教程)(2)选择当前模块需要使用的技术集(MyBatis、MySQL)1、添加整合junit起步依赖(可以直接勾选)(5)测试类中注入dao接口,测试功能。(4) 定义数据层接口与映射配置。SpringMVC(不存在)Spring(不存在)MyBatis(可以)

2022-11-13 01:26:02 513

原创 SpringBoot(二):基础配置文件、yaml语法、多环境开发配置

SpringBoot基础配置文件格式、yaml语法、多环境开发配置

2022-11-09 20:11:28 622

原创 SpringBoot(一):SpringBoot快速入门

(1)SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程(2)Spring程序缺点配置繁琐依赖设置繁琐(3)SpringBoot程序优点自动配置起步依赖(简化依赖配置)辅助功能(内置服务器,……)

2022-11-08 20:05:26 618

原创 SpringMVC(六):拦截器

拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行作用:在指定的方法调用前后执行预先设定的代码阻止原始方法的执行3、拦截器与过滤器区别归属不同:Filter属于Servlet技术,属于SpringMVC技术拦截内容不同:Filter对所有访问进行增强,仅针对SpringMVC的访问进行增强。

2022-11-07 23:43:50 362

原创 SpringMVC(五):异常处理器

作用:设置指定异常的处理方案,功能等同于控制器方法,出现异常后终止原始控制器执行,并转入当前方法执行。工具类抛出的异常:因工具类书写不严谨不够健壮导致(例如:必要释放的连接长期未释放等)业务层抛出的异常:因业务逻辑书写错误导致(例如:遍历业务书写操作,导致索引异常等)表现层抛出的异常:因数据收集、校验等规则导致(例如:不匹配的数据类型间导致异常)数据层抛出的异常:因外部服务器故障导致(例如:服务器访问超时)- 说明:此类方法可以根据处理的异常不同,制作多个方法分别处理对应的异常。

2022-11-06 23:43:54 766

原创 SpringMVC(四):SSM整合

问题:表现层增删改方法返回true或者false表示是否成功,getById()方法返回一个json对象,getAll()方法返回一个json对象数组,这里就出现了三种格式的响应结果,极其不利于前端解析。ServletConfig配置类,加载SpringMvcConfig和SpringConfig配置类。(2)业务层开发(BookService/BookServiceImpl)(3)表现层开发(BookController)(1)Result类封装响应结果。(1)数据层(BookDao)

2022-11-05 20:40:58 709

原创 SpringMVC(三):REST风格

1、REST(Transfer),表现形式状态转换2、传统风格资源描述形式getById?id=1saveUser3、REST风格描述形式4、优点:隐藏资源的访问行为,无法通过地址得知对资源是何种操作书写简化5、按照REST风格访问资源时使用行为动作区分对资源进行了何种操作http://localhost/users 查询全部用户信息http://localhost/users/1 查询指定用户信息添加用户信息修改用户信息。

2022-11-05 16:03:29 107

原创 SpringMVC(二):请求与响应、传参大解析

json普通数组(["","","",...])json对象({key:value,key:value,...})json对象数组([{key:value,...},{key:value,...}])- 名称:@DateTimeFormat- 类型:==形参注解==- 位置:SpringMVC控制器方法形参前面- 作用:设定日期时间型数据格式- 属性:pattern:指定日期时间格式字符串//日期参数 http://localhost:80/dataParam?

2022-11-04 20:04:47 262

原创 SpringMVC(一):SpringMVC简介、入门案例

SpringMVC是一种基于Java实现MVC模型的轻量级Web框架优点:使用简单,开发便捷(相比于Servlet)灵活性强1、三层架构web层负责页面数据收集,产生页面;service负责业务处理,处理数据;dao负责数据持久化,查询存储一些数据。通过这三层架构最终得到数据组织成页面返回给客户端。2、MVC模式客户端发送请求到控制器,控制器controller调用业务层service,业务层调用数据层dao,最后得到数据组织出数据模型model。

2022-11-03 15:41:31 447

原创 Spring(九):Spring事务

事务作用:在数据层保障一系列的数据库操作同成功同失败Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败。

2022-11-02 23:33:34 140

原创 Spring(八):Spring之AOP全解析

面向切面编程,一种编程范式,指导开发者如何组织程序结构面向对象编程作用:在不惊动原始设计的基础上为其进行功能增强Spring理念:无入侵式/无侵入式。

2022-11-02 15:40:47 463

原创 Spring(七):Spring整合Mybatis、Junit

1、在pom.xml中添加spring-context、druid、mybatis、mysql-connector-java等基础依赖。4、创建SpringConfig主配置类进行包扫描和加载其他配置类。2、创建JdbcConfig配置DataSource数据源。3、创建MybatisConfig整合mybatis。1、导入Spring整合Mybatis依赖。2、准备service和dao层基础代码。

2022-11-01 19:34:13 110

原创 Spring(六):一文讲完注解开发

讲清注解开发

2022-10-30 21:08:13 80

原创 Spring(五):容器大总结

ApplicationContext接口是Spring。ApplicationContext接口常用初始化类。ApplicationContext接口提供基础的。BeanFactory创建完毕后,所有的。操作相关方法,通过其他接口扩展其功能。2、文件路径加载配置文件。BeanFactory是。容器的核心接口,初始化时。1、类路径加载配置文件。容器的顶层接口,初始化。3、加载多个配置文件。

2022-10-30 15:30:45 375

原创 Spring(四):依赖注入全解析

如果一个接口有两个实现类,必须按名称装配,而且保证id内容和方法名一致;如果bean不写id,按类型装配也是可以用。,第三方框架内部大多数采用构造器注入的形式进行数据初始化,相对严谨。如果有必要可以两者同时使用,使用构造器注入完成强制依赖的注入,使用。在bean中定义引用类型属性并提供可访问的。在bean中定义引用类型属性并提供可访问的。1、自动装配用于引用类型依赖注入,不能对简单类型进行操作。2、思考:依赖注入描述了在容器中建立。所依赖的资源在容器中自动查找并注入到。2、使用按类型装配时(byType。

2022-10-28 23:21:19 392

原创 Spring(三):bean实例化

先来看看第三个配置方式,第一个bean是配合第二个使用实际无意义,方法名不固定,每次都需要配置。OrderDao接口和OrderDaoImpl实现类。applicationContext.xml配置。applicationContext.xml配置。applicationContext.xml配置。applicationContext.xml配置。不适合交给容器进行管理的bean。UserDao接口和UserDaoImpl实现类。bean生命周期控制:在bean。bean生命周期:bean。

2022-10-27 17:53:23 513

原创 Spring(二):IoC入门案例、DI入门案例

4、初始化IOC容器(Spring核心容器/Spring容器),通过容器获取Bean对象。3、创建Spring配置文件,配置对应类作为Spring管理的bean对象。BookService接口和BookServiceImpl实现类。3、配置service与dao之间的关系。1、删除使用new的形式创建对象的代码。2、提供依赖对象对应的setter方法。2、定义Spring管理的类(接口)容器得到后,如何从容器中获取。bean(IoC入门案例)1、导入Spring坐标。如何将被管理的对象告知。

2022-10-27 16:20:51 95

原创 Spring(一):初见Spring

原来我们dao是要new一个对象,现在不了,放进一个IoC容器,dao能放进去,那service也能放进去。IoC造对象,造出来的叫Bean,你用IoC直接给你,现在程序运行需要service对象,但是还有一个问题,service运行还需要dao对象,IoC会将service和dao关系进行绑定,这种思想就是DI。MyBatis-plus,Struts,Struts2,Hibernate等等,对框架整合来说,Spring做到了极致,对于市面主流的框架都能进行整合。2、学习基础操作,思考操作与思想间的联系。

2022-10-26 23:58:52 188

原创 Redis事务、lua脚本

multi相当于开始事务,他不会立刻执行命令,而且将其加入队列,当你执行exec才会执行,我们看到第三条命令,c的值并不是一个值,是一个字符串,命令加入队列时并不会去检查。移动到链表头,不常访问的自然靠近链表尾,如果超过容量、个数限制,移除尾部的。如果访问了某个 key,则它就变成最新的。检查是否超过限额,是则删除最后一个节点,并断开它的链接。时间上,新的留下,老的淘汰。随机取样法,链表法占用内存较多,记录了它们的最近访问时间,在这。使用的是随机取样法,每次只抽。获取,没有新建节点,存入。

2022-10-24 16:31:20 875

原创 Redis缓存击穿、缓存雪崩、缓存穿透,缓存一致性问题

缓存击穿是指:某一热点key在缓存和数据库中都存在,它过期时,这时由于并发用户特别多,同时读缓存没读到,又同时去数据库去读,压垮数据库解决方法1.热点数据不过期2.对【查询缓存没有,查询数据库,结果放入缓存】这三步进行加锁,这时只有一个客户端能获得锁,其它客户端会被阻塞,等锁释放开,缓存已有了数据,其它客户端就不必访问数据库了。但会影响吞吐量(有损方案)

2022-10-24 00:20:02 196

原创 Redis持久化问题详解

子进程不会阻塞主进程,但创建子进程的期间,仍会阻塞,内存越大,阻塞时间越长。此时如果有新的命令执行,修改的是主进程内存,不会影响子进程内存,并且新命令会记录到。日志,只需要根据当前内存数据的状态,生成相应的命令,记入一个新的日志文件即可。创建子进程时会根据主进程生成内存快照,只需要对子进程的内存进行遍历,把每个。文件的内存缓冲区,每隔一秒将内存缓冲区数据刷入磁盘,最多丢一秒的数据。持久化期间如果有新数据写入,新的数据修改发生在主进程,子进程向。,同步写,日志写入磁盘再返回,可以做到基本不丢数据,性能不高。

2022-10-23 22:49:19 146

原创 keys命令问题、Redis 过期 key 的删除策略

1、keys 命令时间复杂度是O(n),n即总的key数量,n如果很大,性能非常低2、redis执行命令是单线程执行,一个命令执行太慢会阻塞其它命令,阻塞时间长甚至会让redis发生故障切换3、可以使用 scan命令替换keys命令1.虽然scan命令的时间复杂度仍是O(n),但它是通过游标分步执行,不会导致长时间阻塞2.可以用count参数提示返回key的个数3.返回值代表下次的起点(桶下标)4.scan能保证在rehash。

2022-10-23 22:39:12 293

原创 Redis数据类型底层详解、跳表查询

整个跳表是有序的,下图按照score排好序,如果score,再按其他数据排。level是层级,每个数据层级可能不一样,level里面有两个属性,forward是前向指针,span用于计算排名,记录两个节点之间的跨度。为例,虽然跳表是有序的,但是底层是链表结构,不能使用二分法。先从第四层开始,同层的右侧元素null,则下一层,第三层,和右侧元素37比,下一层,第二层>右侧元素,向右小于37,下一层就找到22。,但要执行有序操作,需要排序,带来额外时间空间复杂度。的编码、长度、实际数据,为了节省内存,

2022-10-23 22:30:56 253

原创 MySQL全局锁、表级锁、行级锁

客户端1备份账户表,余额200,客户端2再次期间进行了购买课程,账户课程数为1,客户端备份课程表的时候,读到课程数为1,余额的备份还是之前的200,导致出错。先执行查锁,再select语句,然后再查看,就可以看到t表上有一个元数据锁,类型为SHARE_READ共享读锁,可以存在多个锁不互斥,持续时间是这个事务当中。DML 主要目的是加行锁,为了让表锁不用检查每行数据是否加锁,加意向锁(表级)来减少表锁的判断,意向锁之间不会互斥。它们锁定的其实都是索引上的行与间隙,根据索引的有序性来确定间隙。

2022-10-22 20:41:58 312

原创 MySQL索引的生效与失效、SQL语句的执行流程、undo log和redo log

都用到了索引,但是并不是全部条件都用上,key_len是代表你所用到索引的长度,这个是组合索引,一个字段长度为67。而比J大的记录人名很多,就算走索引也不会提高太多效率,所以不会走索引。这时候发现是没有用到索引的,因为建立索引时lastname在左,如果单纯只用到firstname,没有从最左前缀也是不可以的。or并不是不会走索引,看第二个查询,走了两个索引,一定要以实际情况为准。速度变成了0.03秒,通过explain,也能查看用到了刚刚建立的索引。说明上面建的两个索引是失效的,那我们应该如何建立索引。

2022-10-22 18:57:48 1185

原创 MySQL B+树 BTree原理、增删改(详细)

适用场景:内存数据的索引,但不适合磁盘数据的索引,可以认为。而分叉为 410,则百万数据树高约为3,仅。3. 兄第节点没富余,当前结点和兄弟结点及父结点合并成一个新的结点。适用场景:适用于等值查询的场景,内存数据的索引。的行放在同一页中(每页就是树上一个节点),能进一步减少 I/O。),向兄弟结点借一个记录,同时替换父节点,例如删除。兄弟节点合并成一个新的叶子结点,并删除父结点中的。在每个节点上,无论叶子还是非叶子节点,而。,每个叶子节点到根节点距离都相同,兄弟节点也不富余,合并兄弟叶子节点。

2022-10-22 00:11:40 2096 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除