自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吴声子夜歌的博客

个人学习笔记

  • 博客(1417)
  • 资源 (1)
  • 收藏
  • 关注

原创 Docker——Dockerfile构建MySQL并初始化数据

这将在后台启动一个名为mysql-instance的MySQL容器,如果一切顺利,您将看到MySQL容器成功启动并执行了初始化SQL脚本。在上述Dockerfile中,我们使用了MySQL5.7官方镜像作为基础镜像,并将初始化SQL脚本。这样,MySQL容器在启动时会自动执行该SQL脚本。

2024-04-01 16:15:09 458

原创 Git——IDEA中的使用详解

所以需要先更新你拉的新分支上的代码,将其他人更新的代码合并过来,保证你拉的新分支代码与最新的 master 分支代码一致(以免因为丢失最新修改的代码而造成线上事故)之后再将你的新拉的分支代码合并到 master 分支上面。在实际项目开发过程中,当遇到一个需求时,我们并不会直接就在主分支(master)上面进行开发,而是在主分支的基础上单独创建一个新的分支进行开发,当新建分支的代码经过代码评审以及测试验证通过,确认准确无误之后才会将新增的代码合并到主分支master,这才是一个规范的git操作流程。

2024-03-21 17:00:35 978

原创 Git——GitHub远端协作详解

在多人共同开发时,大家都在自己的分支进行Commit,所以拉回来用一般的方式合并时,常会出现为了合并而生成额外的Commit的情况。在GitHub上有非常多的开源项目,有些项目你很感兴趣,也很想帮忙,于是联系项目的原作者跟他说:“我觉得你的项目很有趣,开个权限给我吧,我来帮你加一些功能”。因为当前项目之前曾推送内容到服务器上,所以远端分支也会记录一份在本机上,同样也是有HEAD和master分支,但会在前面加注远端节点origin,变成origin/ HEAD和origin/master。

2024-03-18 22:13:57 1190

原创 Git——标签详解

在Git中,标签(Tag)是一个指向某个Commit的指示标。这看起来好像与分支(Branch)一样,但又有一些不太一样的地方”。

2024-03-18 15:15:28 948

原创 Git——修改历史记录详解

处于Rebase状态的Commit列表与平常看到的记录是相反的,所以如果想在某两个Commit之间再增加Commit,要注意停下来的那个点是不是正确的点。不止这样,因为这两个Commit对象被换掉了,在它之后的Commit因为前面的历史信息被改了,所以后面整串的Commit全部都重做新的Commit对象来替代旧的Commit对象。这里也是一样,看起来只是改字,但因为Commit对象的信息也会影响SHA-1的计算,所以Git会做出新的Commit对象来替代原来的Commit对象。

2024-03-17 22:43:10 1239

原创 Git——分支详解

在Git的世界中,每一次的Commit都是一个对象,它会指向某一个Tree对象(目录),而这些Tree对象会指向其他的Tree对象(子目录)或Blob对象(文件)。事实上不管是谁合并谁,这两个分支上的Commit都是对等的。cat分支与dog分支都是来自master分支,所以不管master是要合并cat分支还是dog分支,Git都会直接使用快转模式(Fast Forward)进行合并,也就是master直接“收割”cat或dog的成果。是的,所谓的“合并分支”,其实是合并“分支指向的那个Commit”。

2024-03-17 21:14:00 1136

原创 Git——本地使用详解

HEAD是一个指标,指向某一个分支,通常可以把它当作“当前所在分支”来看待。在.git目录中有一个名为HEAD的文件,其中记录的就是HEAD的内容。从这个文件可以看出,HEAD当前正指向master分支。

2024-03-17 12:36:09 1079

原创 Java——正则表达式详解

Java对正则表达式的支持是从1.4版本开始的,此前的JRE版本不支持正则表达式。Java语言中的正则表达式匹配功能主要是通过和类实现的。find():在一个字符串里寻找一个给定模式的匹配:用一个给定的模式尝试匹配一个字符串的开头matches():用一个给定的模式去尝试匹配一个完整的字符串:进行替换操作,对所有的匹配都进行替换:进行替换操作,只对第一个匹配进行替换compile():把一个正则表达式编译成一个模式flags():返回某给定模式的匹配标志matches()

2024-03-07 13:29:16 1088

原创 Java——JAVE(音视频格式转换)

JAVE (Java Audio Video Encoder)是一个纯Java的音视频编码器和解码器库,它是基于FFmpeg。JAVE库提供了一些简单易用的API,用于音频和视频格式的转换、编码、解码等操作。它对于一些基本的音视频处理任务来说是一个不错的选择。这些库都是基于FFmpeg的,并允许在Java中处理音频和视频文件。使用它们可以避免直接调用外部的FFmpeg命令行工具,而是通过Java API来实现音频格式转换等操作。

2024-03-03 17:53:39 1816

原创 Java——添加水印

为图片添加水印的主要作用是保护图片版权,防止图片被未经授权的人使用或传播。还可以使用 ImageIO 类加载图像文件,并使用 Graphics2D 对象的 drawImage() 方法将其绘制到图像上。它支持多种格式的图像、字体和颜色管理,并提供了许多高级特性,如 alpha 融合、深度缓冲区等。Graphics2D 对象是扩展了 Graphics 类的一个子类,提供了更多的绘制功能。可以使用 Graphics2D 对象的 set 方法来设置多种绘制属性,例如颜色、字体、线宽等。

2024-02-20 01:19:30 1076

原创 Java——高级Swing和图形化编程(二)

目录高级Swing和图形化编程(二)3、高级AWT3.1、绘图操作流程3.2、形状1)、形状类层次结构2)、使用形状类3.3、区域3.4、笔画3.5、着色3.6、坐标变换3.7、剪切3.8、透明与组合4、像素图4.1、图像的读取器和写入器1)、获得适合图像文件类型的读取器和写入器2)、读取和写入带有多个图像的文件3)、示例4)、API4.2、图像处理1)、构建像素图2)、图像过滤高级Swing和图形化编程(二)3、高级AWT3.1、绘图操作流程在最初的JDK1.0中,用来绘制形状的是一种非常简单的机

2024-02-19 21:42:36 1134

原创 Java——高级Swing和图形化编程(一)

目录高级Swing和图形化编程(一)1、表格1.1、一个简单表格1.2、表格模型1.3、对行和列的操作1)、各种列类2)、访问表格列3)、改变列的大小4)、改变行的大小5)、选择行、列和单元格6)、对行排序7)、过滤行8)、隐藏和显示列9)、示例10)、API1.4、单元格的绘制和编辑1)、绘制单元格2)、绘制表头3)、单元格编辑4)、定制编辑器5)、API2、树2.1、简单的树1)、示例2)、编辑树和树的路径3)、API2.2、节点枚举2.3、绘制节点2.4、监听树事件2.5、定制树模型高级Swing和

2024-02-17 15:08:48 1108

原创 Java——Swing详解

目录Swing1、Swing和MVC设计模式2、布局管理2.1、布局管理器2.2、边框布局2.3、网格布局3、文本输入3.1、文本域3.2、标签和标签组件3.3、密码域3.4、文本区3.5、滚动窗格4、选择组件4.1、复选框4.2、单选按钮4.3、边框4.4、组合框4.5、滑动条5、菜单5.1、菜单构建5.2、菜单项中的图标5.3、复选框和单选按钮菜单项5.4、弹出菜单5.5、键盘助记符和加速器5.6、启用和禁用菜单项5.7、工具条5.8、工具提示6、复杂的布局管理6.1、网格包布局1)、gridx、gri

2024-02-14 02:10:16 1467

原创 Java——AWT详解

接口方法参数/访问方法时间源JComboBoxJTextFieldTimerJScrollbarItemEvent.getItem()JComboBoxfocusLostFocusEventComponentkeyTypedKeyEventComponentMouseEvent.getX().getY()ComponentmouseMovedMouseEventComponentComponentWindowWindowWindow。

2024-02-12 19:34:35 1594

原创 Java——常用JSON解析库详解(fastjson2、gson、jackson)

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,相比xml数据交换格式来说,因为解析xml比较的复杂且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过JSON来进行交换。JSON简单说就是javascript中的对象和数组,所以这两种结构就是对象和数组两种结构,通过这两种结构可以表示各种复杂的结构。fastjson:阿里gson:谷歌jackson:SpringMVC自带。

2024-02-07 23:19:49 1321

原创 Java——二维码详解

二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一种编码方式。它比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。二维条码/二维码()是用某种特定的几何图形按一定规律在平面(二维方向上)分布的、黑白相间的、记录数据符号信息的图形;

2024-02-03 00:59:26 1420

原创 SpringBoot Test详解

spring-boot-test项目:包含核心功能spring-boot-test-autoconfigure项目:支持自动配置通常情况下,我们通过spring-boot-starter-test的Starter来引入SpringBoot的核心支持项目以及单元测试项目以及单元测试库。JUnit:一个Java语言的单元测试框架:为SpringBoot应用提供集成测试和工具支持:支持流式断言的Java测试框架Hamcrest:一个匹配器库Mockito:一个Java Mock框架。

2024-02-01 15:45:25 1101

原创 JsonPath详解

JsonPath是用来解析多层嵌套的JSON数据。可以认为JsonPath就是JSON版本的XPath。它是一种信息抽取类库,是从JSON文档中抽取指定信息的工具。JsonPath对于JSON来说,就相当于XPath之于XML。@Test//自定义谓词@Override。

2024-01-28 17:24:25 1054

原创 JSONassert详解

在开发过程中,我们经常需要验证返回结果的正确性。RESTful API接口,返回的数据通常是JSON格式,因此需要一种简单的方法来检查JSON的结构和内容是否符合预期。Java JSONassert是帮助我们实现这一目标的常用工具。Maven依赖:</</</</</JSONAssert.assertEquals(预期JSON ,实际JSON , strictMode );JSONassert有如下4种比较模式,这些不同的模式为JSON的测试比较定义了不同的行为。可扩展性和严格排序LENIENT。

2024-01-26 16:13:28 766

原创 AssertJ详解

AssertJ 是一个 Java 库,它提供了丰富的断言集和真正有用的错误消息,提高了测试代码的可读性。核心模块:为 JDK 类型(String、Iterable、Stream、Path、File、Map,…)提供断言Guava模块:为 Guava 类型提供断言(Multimap、Optional,…​)Joda Time模块:为Joda Time 类型(DateTime、LocalDateTime)提供断言Neo4J模块:为 Neo4J 类型(路径、节点、关系……)提供断言Swing模块。

2024-01-25 18:22:58 1159

原创 JUnit5.x详解

目录JUnit5.x1、概述1.1、简介1.2、Maven依赖1.3、核心概念2、Junit4迁移到JUnit Jupiter3、生命周期方法4、@TestInstance(生命周期模式)5、显示测试名称5.1、@DisplayName5.2、@DisplayNameGeneration6、条件测试6.1、操作系统条件6.2、Java运行环境条件6.3、系统属性条件6.4、环境变量条件6.5、自定义条件7、执行顺序7.1、@TestMethodOrder(方法顺序)7.2、@TestClassOrder(类

2024-01-14 22:53:05 1062

原创 Mockito3.x详解

/ 在验证失败时,会打印自定义的消息// 任何验证模式下都能使用这种方式Answer接口只有一个方法,Java 8 使用lambda表达式来实现它非常简单。// answer每次都返回12// 用参数里的一个值作为返回值 - 转换成你想要的正确类型可以定义answer/actions,用被调用方法的参数作为answer/actions中lambda的入参。它们依赖的相关answer接口在org.mockito.stubbing包下,Answer接口最多支持5个参数。

2024-01-08 16:53:40 1126

原创 TestNG详解

目录TestNG1、概述1.1、Maven依赖1.2、功能2、启动方式2.1、Idea直接运行2.2、XML调用1)IDEA直接运行xml文件2)、maven使用surefire插件3、XML配置文件3.1、suite标签3.2、suite-files标签3.3、parameter标签3.4、method-selectors标签3.5、test标签1)、选择一个包中的全部测试脚本(包含子包)2)、选择一个类中的全部测试脚本3)、选择一个类中的部分测试脚本4)、选择一个包中的某些组5)、排除一个包中的某些组3

2024-01-07 18:34:35 517

原创 EasyMock详解

EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。EasyMock提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。Maven依赖:</</</</</创建目标类的Mock录制(Recording)其预期行为,包括动作、结果、调用次数、异常等录制完成后,我们将其切换到重播(Replay)模式,以便Mock在被使用者调用时,表现得和录制时一样。

2024-01-05 01:39:20 1062

原创 JUnit4.x详解

JUnit是一个Java测试框架,使编写可靠和高效的测试变得容易。它可以用于大多数语言制作的应用程序,但特别适合于测试Java应用程序。JUnit也可以用来创建自动测试。JUnit框架是最流行的Java测试框架之一。它提供了一些功能,使编写测试变得容易,包括支持多个测试用例、断言和报告。JUnit也是多功能的,允许用各种语言编写测试。它允许你有效地创建和运行测试,并已成为最流行的Java测试框架之一。xUnit框架激发了Smalltalk和C++的JUnit。

2024-01-04 06:49:36 919

原创 SpringBoot——集成Jersey

在Jersey中引入Spring MVC会带来根路径冲突的问题,因为它们各自的Servlet都默认处理根路径。注意:jersety starter模式使用jackson解析JSON。声明根路径,那么yml中的配置会覆盖注解中的配置。,jersey的跟路径为。actuator的端口为。注意,如果同时也使用了。,jersey的端口为。

2023-12-28 00:11:42 547

原创 WebService——JAX-RS2(Jersey)客户端详解

与Apache HTTP Client和HttpURLConnection相比,客户端API是可感知REST的高层API,可以与Providers集成,返回值直接对应高层的业务类实例,而不是JAXB对象或者更为低层的数据类型。作为REST框架,JAX-RS2不希望开发者编码实现对客户端实例的资源管理,Response实例的readEntity(在返回响应实体的同时,即完成了对客户端资源的释放。默认情况下,HTTP方法调用的返回类型是Response类型,同时也支持泛型类型的返回值。

2023-12-27 21:39:07 931

原创 WebService——JAX-RS2(Jersey)扩展点详解

根据对象的不同,返回不同的JettisonJaxbContext实例,以实现不同的JSON解析效果。@Provider//前置处理@Override//获取请求方法和地址//获取请求头信息@Override@Override@Override//获取容器响应状态return b;List<

2023-12-27 00:09:44 1016

原创 WebService——JAX-RS2(Jersey)传输格式和响应处理详解

MOXy是Jersey默认的JSON解析方式,可以在项目中添加MOXy的依赖包来使用MOXy:</</</使用Servlet.3可以不定义web.xml配置。MOXy的Feature接口实现类是MoxyJsonFeature,默认情况下,Jersey对其自动探测,无须在Applicaion类或其子类显式注册该类。两端禁用服务器端禁用客户端禁用@Component//注册资源//取消MOXy自动探测return id;return age;

2023-12-26 01:37:10 1012

原创 WebService——JAX-RS2(Jersey)注解详解

虽然WebDAV对HTTP方法做出了功能性扩展,使之提供更强大服务,但是从ROA角度讲,因为WebDAV在HTTP标准方法的基础上增加了特殊的方法名称,WebDAV破坏了统一接口的原则。资源地址的路径变量是用来表达逻辑上的层次结构的,资源和子资源的形式是自左至右、斜杠分割的名词。DELETE方法是幂等的,即多次删除同一份数据(通常请求中传递的参数是数据的主键值),在服务器端产生的改变是相同的。注解来定义相关的资源方法。PathInfo是资源路径信息,与资源类、子类以及类中的方法定义的@Path注解有关。

2023-12-25 00:12:08 900

原创 SpringBoot——整合WebService

WebService服务端是以远程接口为主的,在Java实现的WebService技术里主要依靠CXF开发框架,而这个CXF开发框架可以直接将接口发布成WebService。JAX-WS是基于xml协议JAX-RS是基于Restful风格RS比WS传输的数据更少,效率更高。WS只能传输XML数据,RS可以传输XML,也可以传输JSON本文以JAX-WS为例</</</</</</</

2023-12-22 18:01:18 826

原创 WebService——WebService详解

Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。简单的说,WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然。跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。

2023-12-21 20:12:50 933

原创 WebService——WSDL详解

W3C组织(World Wide Web Consortium)没有批准1.1版的WSDL,当前的WSDL版本是2.0,是W3C的推荐标准(recommendation)(一种官方标准),并将被W3C组织批准为正式标准。WSDL文档有各种元素,但它们包含在这三个主要元素中,可以作为单独的文档开发,可以将它们组合或重用以形成完整的WSDL文件。WSDL将Web服务分解为三个特定的,可识别的元素,这些元素可以在定义后组合或重用。元素的绑定属性将服务的地址与Web服务中定义的绑定元素相关联。该服务发送一条消息。

2023-12-19 23:53:29 743

原创 WebService——SOAP详解

SOAP即(Simple Object Access Protocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

2023-12-19 17:31:06 1924

原创 Java——本地方法(JNA)详解

JNA 全称 Java Native Access,是一个建立在经典的 JNI 技术之上的 Java 开源框架。JNA 提供一组 Java 工具类用于在运行期动态访问系统本地库(native library:如 Window 的 dll)而不需要编写任何 Native/JNI 代码。开发人员只要在一个 java 接口中描述目标 native library 的函数与结构,JNA 将自动实现 Java 接口到native function 的映射。

2023-12-18 01:51:45 1014

原创 Java——本地方法(JNI)详解

1)、关于Load与LoadLibrary这里 System.load 方法需要读取 .dylib 的绝对路径,如果使用 System.loadLibrary 方法则需要传相对路径,这里建议大家写绝对路径,肯定不会出错。

2023-12-15 20:36:45 212

原创 Java——国家商用密码详解(SM2、SM3、SM4)

国密即国家密码局认定的国产密码算法,即商用密码。商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。为了保障在金融、医疗等领域保障信息传输安全,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)等。SSF33、SM1、SM4、SM7是对称算法SM2、SM9是非对称算法SM3是哈希算法。

2023-12-11 23:34:10 1482

原创 Java——加密/解密相关类(java.security、javax.crypto、javax.net.ssl)

目录Java加密/解密相关类1、Java与密码学1.1、Java安全领域组成部分1.2、安全提供者体系结构2、java.security包详解2.1、Provider类2.2、Security类2.3、MessageDigest类2.4、DigestInputStream类2.5、DigestOutputStream类2.6、Key接口1)、SecretKey2)、PublicKey和PrivateKey2.7、AlgorithmParameters类2.8、AlgorithmParameterGenera

2023-12-10 00:03:40 331

原创 Java——安全协议详解

HTTPS协议和SSL/TLS协议分属TCP/IP参考模型中的应用层和传输层。简单地说,HTTPS就是附加了SSL/TLS协议的HTTP协议,就是HTTP安全版。HTTPS协议为数字证书提供了最佳的应用环境。

2023-12-06 22:33:26 197

原创 Java——数字证书详解

数字证书集合了多种密码学算法:自身带有公钥信息,可完成相应的加密/解密操作;同时,还带有数字签名,可鉴别消息来源;且自身带有消息摘要信息,可验证证书的完整性;由于证书本身含有用户身份信息,因而具有认证性。数字证书具备常规加密/解密必要的信息,包含签名算法,可用于网络数据加密/解密交互,标识网络用户(计算机)身份。数字证书为发布公钥提供了一种简便的途径,其数字证书则成为加密算法以及公钥的载体。依靠数字证书,我们可以构建一个简单的加密网络应用平台。

2023-12-04 17:58:50 426

vuedevtools安装.zip

用于Chrome本地安装vue-devtools,无脑安装!!!! 安装过程: 1.Chrome=》设置=》更多工具=》扩展程序 2.打开开发者模式 3.加载已解压的扩展程序=》选择解压后的文件夹 4.重启浏览器 5.如果失败,在加载后的vuedevtools设置页面开启“允许访问文件网址”

2019-10-27

空空如也

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

TA关注的人

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