- 博客(89)
- 问答 (4)
- 收藏
- 关注
原创 设计模式 - 工厂方法模式
工厂方法模式是一种非常实用的设计模式,它通过定义一个创建对象的接口,让子类决定实例化哪一个类。这种方式不仅提高了代码的灵活性和可扩展性,还遵循了开闭原则。在实际开发中,工厂方法模式可以广泛应用于需要创建多种相关对象的场景,尤其是在对象创建逻辑较为复杂的情况下。
2024-10-30 17:54:43
1113
原创 设计模式 - 简单工厂模式
void cut();void box();break;default:简单工厂模式通过将对象的创建逻辑封装在一个静态工厂方法中,简化了客户端代码。然而,随着产品的增加,工厂类可能会变得庞大,难以管理和维护。此外,当需要添加新的产品时,需要修改工厂类,这违反了开闭原则。
2024-10-30 17:27:42
1361
原创 设计模式 - 单例模式(懒汉式、饿汉式、静态内部类、枚举)
单例模式是一种非常实用的设计模式,尤其适用于那些需要频繁访问且创建成本较高的对象。然而,在使用单例模式时也需要谨慎,因为它可能会引入一些设计上的问题,特别是当单例类变得过于庞大时。在现代软件架构中,依赖注入(DI)框架(如Spring)的使用越来越广泛,它提供了一种更加灵活的方式来管理对象的生命周期,因此在很多情况下,单例模式可以通过依赖注入来实现,而不是手动实现。
2024-10-30 16:55:10
1048
原创 Python爬虫系列(一)
一些网站,我们没法直接这样获取到资源,大概率是这些网站做了反爬手段,例如上述下载视频,如果是b站视频,直接这样是下载不到的。我们发现访问https的百度和访问http协议的百度,我们返回的结果是不一样的。https://www.baidu.com的结果明显少了很多内容。这其实就是因为反爬的原因。为什么返回的结果很少?是因为我们提供的数据不完整。那么如何做到无差别浏览器呢?我们慢慢来~
2024-10-29 11:36:50
2145
原创 Canvas 教程(一)
前面演示的方式获取到的仅仅是html元素,现在这种方式 js 能够识别到这是canvas元素。❗ 有博主说:canvas和别的元素不太一样,需要使用属性的方式设置宽和高,不然会有问题。这个情况我暂时还没发现有什么问题,两种方式试了一下都能展示,有问题后面再说。很明显,通过样式修改的宽高尺寸已经严重扭曲。接下来,我们画一个方形看看,直接给代码进行演示。2. 拿到渐变对象,设置渐变的起止颜色,1. 通过画笔对象,创建线性渐变对象。方法把画笔移动到直线的起点。方法把画笔移动到直线的终点。请画出如下所示的折线图?
2024-10-29 11:34:01
2770
原创 SpringBoot项目如何设置定时任务总开关
在一些复杂项目中,我们写了很多定时任务类,但是有的时候,在代码调试阶段,不希望执行这些定时任务,如何更高效的方式关闭这些定时任务,而不是逐一注释代码。解决方式也很简单。
2024-10-29 11:30:48
1408
原创 SQL Server数据库基本安装使用
SSMS是Microsoft SQL Server Management Studio的缩写,即sql server的客户端管理工具,类似于navicat这类。有的朋友在安装sql server的时候选择了仅使用windows身份验证模式,而现在却又想用sql server身份验证模式登陆sql server,怎么解决这个问题呢?18456:出现这个问题是因为你没有做好第二步:选择使用sql server和windows混合身份验证模式。下载下来以后,双击打开,进行在线下载安装。
2024-07-30 11:20:44
1857
原创 Python入门教程 - 文件操作 (七)
一、文件的编码思考:计算机只能识别:0和1,那么我们丰富的文本文件是如何被计算机识别,并存储在硬盘中呢?答案:使用编码技术(密码本)将内容翻译成0和1存入。编码技术即:翻译的规则,记录了如何将内容翻译成二进制,以及如何将二进制翻译回可识别内容。计算机中有许多可用编码:UTF-8、GBK、Big5等。不同的编码,将内容翻译成二进制也是不同的。UTF-8是目前全球通用的编码格式。除非有特殊需求,否则,一律以UTF-8格式进行文件编码即可。二、文件的读取在Python。
2024-06-13 16:25:07
1195
原创 Python入门教程 - 模块、包(八)
4.1 制作自定义模块Python中已经帮我们实现了很多的模块,不过有时候我们需要一些个性化的模块,这里就可以通过自定义模块实现, 也就是自己制作一个模块。案例:新建一个Python文件,命名为my_module1.py,并定义test函数。注意每个Python文件都可以作为一个模块,模块的名字就是文件的名字。也就是说自定义模块名必须要符合标识符命名规则。4.2 测试模块。
2024-06-12 17:39:24
1035
原创 C语言中如何自定义头文件(Clion)
这是一个头文件,头文件的名称可以自定义,但是必须是.h结尾。我们定义的函数声明,当然也可以直接写函数。该头文件中声明的函数在这里实现。////main.c最后,就可以在主函数中使用我们自定义的函数了。和标准库不一样的地方是,使用我们自定义的头文件需要用双引号"",而标准库是用尖括号。hello();return 0;运行看看结果:我们自定义的头文件中还定义了带返回值的函数,下面我们使用看看,注意主函数中打印出来,还需要引入printf()函数的标准库哦。hello();
2024-01-23 15:24:41
2948
原创 翻遍全网才找到的Oracle19c安装教程(Windows版)
官方地址:Database Software Downloads | Oracle 中国我下载下来了,有需要的可以网盘领取: 下载下来是一个zip格式的压缩包,体积大约2.89G,我们随便解压到什么地方都可以,安装完毕删掉也可以。以管理员身份安装setup.exe文件 过程有点慢,耐心等待。 安装过程是很慢的。很多人会卡在42%这里,如何你发现半个小时还没有动,那么建议你卸载掉重新安装。安装的时候把安装路径指定到C盘试试。注意不要有中文,再次强调。出现下面这个节目就算安装完了。直接关闭即可。打开cmd窗
2024-01-18 20:02:05
1383
原创 Hutool工具包:http客户端工具(使用教程)
Hutool参考文档Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
2023-09-19 09:39:18
15825
原创 不同请求方式下请求参数的区别
当发起一次POST请求时,若未指定content-type,则默认content-type为application/x-www-form-urlencoded。即参数会以Form Data的形式进行传递,不会显式出现在请求url中。当发起一次POST请求时,若content-type为application/json,则参数会以Request Payload的形式进行传递(显然的,数据格式为JSON),不会显式出现在请求url中。所以,当我们要传递的参数过长时,要解决这个问题,我们建议使用POST请求。
2023-09-18 15:34:58
716
原创 MySQL搭建主从复制集群,实现读写分离
Sharding-JDBC定位为轻量级的Java框架,在Java的jdbc层提供的额外服务。它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可以理解为增强版的jdbc驱动,完全兼容jdbc和各种orm框架。适用于任何基于JDBC的ORM框架,如:JPA,Hibernate,Mybatis,Spring JDBC Template或直接使用JDBC。支持任何第三方的数据库连接池,如:DBCP,C3P0,Druid,HikariCP等。支持任意实现JDBC规范的数据库。
2023-09-15 10:09:53
1100
原创 Kubernetes(K8S)集群部署
具体操作步骤可以参考之前的教程,建议是先安装一台,然后克隆虚拟机,这样速度快。注意:在克隆时记得修改Mac地址、IP地址、UUID和主机名。(最后别忘了保存下快照~)
2023-09-14 17:48:37
8030
7
原创 大数据技术之Hive:先导篇(一)
什么是分布式SQL计算我们知道,在进行数据统计分析时,通常是编程语言(如Java、Python) + SQL,说明SQL是目前数据统计分析最为方便的编程工具。大数据体系中充斥着非常多的统计分析场景。所以,使用SQL去处理数据,在大数据中也是有极大的需求的。但是前面我们学习的非常重要的MapReduce,它只支持程序开发(Java、Python等),不支持SQL开发。所以,尽管MapReduce很重要,计算效率很高,由于不支持SQL开发,使用上就显得非常复杂。由此,Hive应运而生。
2023-09-12 11:15:09
720
3
原创 大数据技术之Hadoop:提交MapReduce任务到YARN执行(八)
到这一章结束,我们的Hadoop学习就告一段落了。不是说Hadoop技术学完了,而是可以说已经入门了。至于后续要深入学习也有了方向性。下一步我们将讲解Hive技术。过程中会补充MapReduce的一些知识点。最难不过坚持,加油!🧡。
2023-09-10 12:41:48
1601
原创 大数据技术之Hadoop:Yarn集群部署(七)
常用的进程启动命令如下:一键启动YARN集群:会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动会基于workers文件配置的主机启动一键停止YARN集群:在当前机器,单独启动或停止进程start和stop决定启动和停止可控制resourcemanager、nodemanager、proxyserver三种进程历史服务器启动和停止start|stop。
2023-09-08 15:00:23
2154
原创 大数据技术之Hadoop:MapReduce与Yarn概述(六)
那么Yarn作为分布式资源调度组件,它具体有啥作用呢?换句话说什么是资源调度?我们为什么需要资源调度?服务器会运行多个程序,每个程序对资源(CPU内存等)的使用都不同程序没有节省的概念,有多少就会用多少。所以,为了提高资源利用率,进行调度就非常有必要了。YARN管控整个集群的资源进行调度,那么应用程序在运行时,就是在YARN的监管(管理)下去运行的。这就像:全部资源都是公司(YARN)的,由公司分配给个人(具体的程序)去使用。比如,一个具体的MapReduce程序。
2023-09-08 10:07:02
1369
原创 大数据技术之Hadoop:HDFS存储原理篇(五)
HDFS分布式文件存储,通常是将1个文件拆分成多个部分,然后分别发送到不同服务器节点上。问题:不同的文件大小不一,粗暴的拆分然后放到服务器不同节点,会导致各个部分的大小也不一样,不利于统一管理。解决办法:设定统一的管理单位,block块。Block块,HDFS最小存储单位每个256MB(可以修改)这样可以将文件分成多个Block块,不同的Block块存入对应服务器。举例说明某个文件大小1G,那么理论上可以分为4个Block块。
2023-09-07 13:58:47
1425
原创 大数据技术之Hadoop:使用命令操作HDFS(四)
在HDFS中的命令,基本上就是照搬的Linux命令。只要你熟悉Linux命令,那么HDFS命令基本上一遍过。它的目录结构和linux非常相似。举个例子:Linux 中:HDFS中:或者 hdfs dfs -mkdir -p /opt/mynote所以说,是不是没什么区别?🫢那么我们这就引出了第一个HDFS操作命令。
2023-09-06 15:21:47
7064
原创 Arthas教程 - 命令篇 (二)
CPU%: 线程消耗的cpu占比,采样100ms,将所有线程在这100ms内的cpu使用量求和,再算出每个线程的cpu使用占比。当然了,如果我们arthas服务器关闭了,这个增加也会被重置,不会改变实际运行的项目(被attach的进程)。但是arthas服务器没有关闭的情况下,想在操作过程中重置,其实可以使用reset命令,让它停止增强。重置增强类,将被 Arthas 增强过的类全部还原,Arthas 服务端关闭时会重置所有增强过的类。简单讲就是,arthas可以增强我们运行的Java程序的某个类。
2023-09-03 21:58:57
3166
原创 Arthas教程 - 安装篇 (一)
本地指定目录下(例如我是:F:\测试\arthas),使用Windows的cmd窗口,执行如下命令则会将jar包下载下来。运行后会自动下载arthas相关jar包,这些jar包在C:\Users\hssym\.arthas\lib\3.7.1\arthas路径下。这时它会自动去远程下载arthas相关j文件到本地目录,下载完成后会自动运行arthas项目。前面我们在线安装了一遍,在离线安装前,我的建议是删除掉之前在线安装的文件。此时,我们通过java -jar 的方式,尝试运行这个jar包试试。
2023-09-03 19:07:42
5692
原创 Python入门教程 - 基本函数(四)
函数的定义:def 函数名(传入参数):函数体return 返回值① 参数如不需要,可以省略(后续章节讲解)② 返回值如不需要,可以省略(后续章节讲解)③ 函数必须先定义后使用# 定义# 使用10 - 2 = 8print("差值为: %s" % result)差值为: 211print("测试")测试NoneNone表示:空的、无实际意义的意思函数返回的None,就表示,这个函数没有返回什么有意义的内容。也就是返回了空的意思。
2023-09-03 13:03:43
1484
原创 Python入门教程 - 循环语句 (三)
除了这些类型,我们希望如果是其他类型,也能让它转成可迭代类型,这样方便for循环遍历。for循环语法中的临时变量 for循环外也可以获取到。但是规范上不允许获取!continue可以用于: for循环和while循环,效果一致。break可以用于: for循环和while循环,效果一致。for循环语法中的:待处理数据集,严格来说,称之为:可迭代类型。continue关键字用于:中断本次循环,直接进入下一次循环。通过for循环,遍历此字符串,统计有多少个英文字母:"a"循环满足条件时执行的代码。
2023-09-02 21:37:15
805
原创 Python入门教程 - 判断语句(二)
条件不成立时,要做的事情。条件不成立时,要做的事情。条件1成立时,要做的事情。条件2成立时,要做的事情。条件成立时,要做的事情。条件成立时,要做的事情。比较运算的结果是布尔类型。
2023-09-02 21:29:21
695
原创 Python入门教程 - 基本语法 (一)
双引号定义、单引号定义、三引号定义text1 = "我是字符串(本文)数据"text2 = "我也是字符串(文本)数据哦"没想到吧,我既能做注释,也能作为字符串哟"""我是字符串(本文)数据我也是字符串(文本)数据哦没想到吧,我既能做注释,也能作为字符串哟。
2023-09-02 21:20:01
1872
原创 Python安装指南(Windows版)
我选择3.10.4版本,当然你也可以安装安装完成,需要验证是否安装成功。打开CMD窗口,输入python命令,如果进入如下python窗口则安装成功!
2023-09-02 13:39:19
446
原创 Lombok生成的Getter和Setter的名称对于“eMail”或“xAxis”等属性存在大小写转换异常
究其原因,这可能是Json序列化对象后,使用Lombok后属性xAxis大写变成小写xaxis。当然你不用所有的都重写,只重写该问题字段就可以了。不过我建议,既然都要重写了那干脆都重写。重写之后你会发现set、get后面的字母也变成小写了,正常我们set、get后面都是大写的。如果你也遇到这个问题,不妨重写getter、setter方法试试。明明代码中第二个字母是大写,结果测试接口时发现变成了小写字母。这个你不用管,让它生成就好了。只要是第二个字母是大写的,都会被自动转换为小写。通过线下自己测试发现,
2023-08-21 10:44:46
632
原创 uniapp从入门到精通(全网保姆式教程)~ 别再说你不会开发小程序了
为了实现多端兼容,综合考虑编译速度、运行性能等因素,uni-app约定了如下开发规范:页面文件遵循Vue单文件组件规范组件标签靠近小程序规范,详细见uni-app组件规范接口能力(js api)靠近微信小程序规范,但需将前缀wx替换为uni,详见uni-app接口规范数据绑定及事件处理同Vue.js规范,同时补充了App以及页面的生命周期为兼容多端运行,建议使用flex布局进行开发。
2023-08-20 19:51:14
102996
54
原创 Spring AOP实践:如何通过aop记录日志?
我们自定义一个注解。这里叫LogAnnotation,属性也可以自定义。注解有了,我们就可以将这个注解作用到任何方法上面了。但是仅仅有这个注解还不行,它不能发挥任何功能,起不了什么作用,也仅仅是标记了一个方法。因此,我们就要为这个注解建立切面。
2023-08-14 23:32:34
538
原创 文件上传第三方存储平台:七牛云对象存储(Java为例)
我发现很多人还不知道对于第三方存储如何在代码中进行使用,而实际开发中很多场景下可能都会遇到。所以我特别写一篇博客,目的一是方便自己使用,二是给还在学习中的朋友一点参考。
2023-08-14 13:30:00
838
原创 MySql的Windows安装指南
步骤4:单击“Next”(下一步)按钮,打开设置服务器root超级管理员的密码窗口,如图所示,需要输入 两次同样的登录密码。步骤2:打开“Choosing a Setup Type”(选择安装类型)窗口,在其中列出了5种安装类型,分别是 Developer Default(默认安装类型)、Server only(仅作为服务器)、Client only(仅作为客户端)、 Full(完全安装)、Custom(自定义安装)。步骤2:单击“Next”(下一步)按钮,进入MySQL服务器类型配置窗口,如图所示。
2023-08-05 10:07:16
1873
原创 大数据技术之Hadoop:HDFS集群安装篇(三)
此为个人学习笔记,包含个人归纳总结以及结合了对网络资源的整理,初衷是为了自己复习巩固。如果能帮到各位是我的荣幸!该总结参考了黑马教程,感兴趣的也可以去观看相关视频。
2023-08-03 16:45:30
3686
2
原创 大数据技术之Hadoop(二)
使用分布式技术完成海量数据的处理,得到数据蕴藏的价值。大数据的5个主要特征一句话总结就是:从海量的高增长、多类别、低信息密度的数据中挖掘出高质量的结果。由此得出大数据的三大核心工作海量数据的计算存储传输简单说,Hadoop包含:分布式数据存储技术(HDFS)分布式数据计算技术(MapReduce)分布式资源调度技术(YARN)从前面讲解中,我们可以清楚的发现,Hadoop包含了大数据三大核心任务的前两个:海量数据的计算和存储。
2023-08-03 11:29:35
990
原创 大数据之Hadoop(一)
我们先准备三台服务器,可以通过虚拟机的方式创建,也可以选择云服务器。关于如何创建虚拟机,我有写过相关文章。可以参考【编程环境安装】专题。
2023-08-03 09:30:09
1306
3
原创 虚拟机之间配置免密登录
但是实际工作中,我们一般不可能以root用户进行操作。比如如果以root用户创建应用,那么这个应用就会拥有所有root权限。一旦应用被黑,就等于拿到root权限,这就很危险了,当然这部分内容在此不做过多阐述!为了方便起见,我们可以配置SSH免密登录,这样相互之间传递文件就会更加的方便。所以,我们一般都是创建普通用户。这样,我们各个服务器之间,就可以通过rooot用户进行免密登录了。这样在各自服务器下,我们就可以通过主机名访问对应的ip地址了。我们在搭建服务器集群的时候,通常需要在多个服务器之间来回跳转。
2023-08-02 21:22:56
4653
原创 SpringBoot之WebMvcConfigurer详解
WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式,针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-based方式的spring mvc配置,需要创建一个配置类并实现WebMvcConfigurer接口。在Spring Boot 1.5版本都是靠重写的方法来添加自定义拦截器,消息转换器等。
2023-07-28 16:56:18
2155
原创 SpringMVC 拦截器详解
SpringMVC拦截器的实现一般有两种方式:自定义的Interceptor类要实现了Spring的HandlerInterceptor接口。继承实现了HandlerInterceptor接口的类,比如Spring已经提供的实现了HandlerInterceptor接口的抽象类HandlerInterceptorAdapter。@Override@Override@OverrideHandlerInterceptor接口中定义了三个方法,我们就是通过这三个方法来对用户的请求进行拦截处理的。
2023-07-28 11:58:37
357
原创 统一异常处理
我们也可以自定义编写一个异常类型,然后加入到统一异常处理类中,不过在业务中需要的位置,需要我们自己抛出。@Datatry {throw new CustomException(20001,"出现自定义异常");
2023-07-11 23:04:04
1674
renren-fast-vue导入elementui的drawer抽屉组件问题
2022-11-17
在Springboot中,mybatisplus默认开启驼峰命名吗?
2022-07-13
浏览器发送的post请求在http协议的什么位置?
2022-07-01
MySQL起别名只能在查询语句中使用对吗?
2021-11-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人