其他技术区
java 标签描述

说明:本文记录一次偶然出现的空指针异常,在微服务架构中,一个服务在调用另一个服务时,出现了空指针异常。 业务描述:在做订单超时功能时,大家都知道,可以使用RabbitMQ延迟队列,下单的同时给队列发送一个延迟消息(消息的内容是订单号),比如延迟10分钟。10分钟之后,该消息被消费者监听到,会根据该订单ID查询数据库,看该订单的状态是否为已支付,是则忽略,否则取消该订单,恢复商品库存等等其他操作,然而此时出现了空指针异常,消息未被消费,被路由到死信队列中。 (微服务调用报空指针异常) (消息被路由到死信队列) 如下图的第三步: 分析 首先排除FeignClient的问题,因为下单减少库...

  TEZNKK3IfmPf   13天前   16   0   0 java拦截器

控制反转就是将代码的调用权(控制权)从调用方转移给被调用方(服务提供方)。 解释一下: 如果我们需要创建某个类,就需要程序员去修改代码,然后才可以得到想要的类。反转的意思就是不需要程序员去直接操作代码,而是通过服务方 (Spring)让框架的机制帮助程序员获得想要的对象,而程序员只需要修改配置文件,不用关心对象是怎么创建的。 举个例子: 1publicclassUserServiceImplimplementsUserService{2privateUserDaouserDao=newUserDaoImpl();3@Override4publicvoidgetUser(){5userD...

  TEZNKK3IfmPf   13天前   15   0   0 javaide

说明:ffmpeg是一款非常好用的媒体操作工具,包含了许多对于视频、音频的操作,有些视频播放器,实际上就是套了一个ffmpeg的壳子。本文介绍ffmpeg的使用以及一些较为实用的命令。 安装 ffmpeg是命令行操作的,不需要安装,可在官网下载压缩包; 解压到一个没有中文、没有数字的路径下,配置一下环境变量,这些都是基本操作,不再详细介绍; 打开CMD,输入ffmepg,出现以下信息表示环境变量配置成功; 使用 命令1:提取视频所有帧 有时我们需要对视频图像进行处理,可以考虑把视频按帧提取出来成图片,再使用代码对图像进行逐帧处理,可使用以下命令: ffmpeg-i<视频文件名&...

  TEZNKK3IfmPf   13天前   19   0   0 javaffmpeg

具体角色: ProtoType抽象原型类 ConcreteProtoType具体原型类 步骤: 实现一个接口:Cloneable 重写一个方法:clone pubilcObjectclone()object=super.clone();returnobject; 浅克隆:复制对象的引用,对象的属性仍然指向同一处。 深克隆:不止复制对象的引用,而且要把对象的所有属性全部克隆一次,两个对象的属性将不会指向同一块区域,从而实现两个对象彻底分离。 核心理解 原型模式只做了一件事情,就是克隆一份一模一样的自己并返回。 实现一个接口Cloneable 调用一个方法:objec...

  TEZNKK3IfmPf   13天前   21   0   0 java软件设计模式

publicclass定义要求文件名和类名保持一致,一个。Java文件只允许有一个publicclass定义! 主方法是一切程序的起点, publicstaticvoidmain(Stringargs[]){}

  TEZNKK3IfmPf   13天前   17   0   0 javaclasspublic

定义:外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统的一组接口提供了一个一致的界面。 实例:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一个电视机的启动和关闭。 核心理解 外观模式做的事情是这样的: 比如说你现在想把家里的灯关了、把空调关了、把电视机也关了。正常的过程是你要一个个去把它们关闭,但是如果给你一个统一的关闭按钮,只要你按这一个按钮,这三种电器就会同时关闭,这样的一个按钮的实现,就是外观模式的核心! 使用简单的关联关系,实现对多个对象的方法的同时调用,统一分配!

  TEZNKK3IfmPf   13天前   21   0   0 java

用途:将一个类的接口转换成客户希望的另一个类的接口。 例子:电脑网线USB转接器 角色: 电脑(客户端)、网线、转接器、目标接口NetToUsb 目标接口或抽象类(目标抽象类或目标抽象接口):这里例子中就是目标接口USB。 适配者类(需要适配的类Adaptee):它定义了一个已经存在的接口,这个接口需要被适配。在这个例子中网线类就是那个已经存在的接口,但是网线不可以直接插到电脑的USB上。 适配器类(Adapter):包装网线,让网线支持USB接口,把网线插到USB上并处理请求。 适配器类需要同时和两个类打交道,它要把网线和电脑的USB接口连接在一起。有两种方式, 一种是继承要被适...

  TEZNKK3IfmPf   13天前   15   0   0 java软件设计模式

注意点: 静态私有成员变量。 私有构造函数。 静态公有工厂方法,返回唯一对象实例,方法中判断对象是否为空,如果为空则new一个新对象返回,俄国不为空,则直接将私有成员变量对象返回。 packagecom.a007;publicclassStuNo{//静态私有成员变量privatestaticStuNoinstance=null;privateStringno;//私有构造方法privateStuNo(){}//静态公有工厂方法,返回唯一实例publicstaticStuNogetInstance(){if(instancenull){System.out.println("新学号...

  TEZNKK3IfmPf   13天前   12   0   0 java软件设计模式

说明:elasticsearch查询操作除了使用DSL语句的方式(参考:elasticsearch查询操作(语句方式)),也可以使用API的方式。 准备 使用前需先导入依赖 <!--RestHighLevelClient依赖--> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> </dependency> 创...

Java基本类型共有八种,基本类型可以分为三类, 字符类型char 布尔类型boolean 数值类型byte、short、int、long、float、double 数值类型又可以分为整数类型byte、short、int、long和浮点数类型float、double。 一、八种基本数据类型 各类型的特点  四种整型的特点 最大值:高位为0表示正数,其余7个位为1,十进制为127。   最小值:高位为1表示负数,其余7个位为0,十进制为-128。   所有的负数都是以补码的方式存储的。   以一个字节的-6为例:    原码...

  TEZNKK3IfmPf   13天前   21   0   0 java运算运算符

(66)SpringBoot简介 SpringBoot是Spring开源组织下的子项目,是Spring组件一站式解决方案,它的产⽣简化了框架的使⽤,所谓简化,是指简化了使用Spring的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手,所以SpringBoot是⼀个服务于框架的框架,服务范围是简化配置⽂件。SpringBoot优点,如:(1)独立运行(2)简化配置(3)自动配置(4)无代码生成和XML配置(5)应用监控(6)上手容易 (67)SpringBoot默认启动方式是什么? 运⾏带有mian⽅法类。类上需要加@SpringBootApplication注解,main⽅法...

  TEZNKK3IfmPf   13天前   16   0   0 javatomcatspring

说明:之前介绍过MyBatis的用法,像用注解和Mapper.xml操作数据库、在Mapper.xml里写动态SQL。最近在一次用MyBatis批量更新数据库对象的场景中,意识到对MyBatis的一些标签用法不太熟悉,所以去MyBatis官网看了一些文档,基于此,本文介绍一些可能会用到的MyBatis用法。 $占位符 通常我们会使用{}表示占位符,即该位置的值使用传递的参数,在运行SQL拼接时,会用?占位,在执行SQL的时候才会将我们的参数替换执行,不会有SQL注入的风险。如下: (controller层) /查询用户@paramid@return/ @GetMapping("/getUs...

  TEZNKK3IfmPf   13天前   16   0   0 javaMyBatisSpringBoot

1/23/4packagestudy.reliable;5/6@author:Administrator7@date:2022年4月21日下午9:38:5589/10/11@authorAdministrator1213/1415importjava.text.DateFormat;16importjava.text.ParseException;17importjava.text.SimpleDateFormat;18importjava.util.Date;1920publicclassDateDemo{21//将毫秒值转换为日期22publicvoiddemo1(){23//获取...

  TEZNKK3IfmPf   13天前   21   0   0 java日期

说明:使用RabbitMQ发送消息,消息是对象,出现下面这样的错误; 错误信息:Causedby:com.fasterxml.jackson.databind.exc.InvalidDefinitionException:Cannotconstructinstanceofcom.hmall.item.pojo.Item(noCreators,likedefaultconstructor,exist):cannotdeserializefromObjectvalue(nodelegateorproperty-basedCreator) 分析: 翻译说,无法构造实例; 于是,看一下我的实例...

  TEZNKK3IfmPf   13天前   18   0   0 javarabbitmq

1publicstaticvoidmergeSort(int[]arr){2if(arrnull||arr.length<2){3return;4}5mergeSort(arr,0,arr.length1);6}78publicstaticvoidmergeSort(int[]arr,intl,intr){9if(lr){10return;11}12intmid=l+((rl)>>1);13mergeSort(arr,l,mid);//左侧有序14mergeSort(arr,mid+1,r);//右侧有序15merge(arr,l,mid,r);//merge16}1...

  TEZNKK3IfmPf   13天前   15   0   0 java算法

try{}里有一个return语句,那么紧跟在这个try后的finally{}里的code会不会被执行,什么时候被执行,在return前还是后? packagecom.test;publicclassTest1{publicstaticvoidmain(String[]args){try{System.out.println(newTest1().testname());}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}publicStringtestname()throwsException{...

  TEZNKK3IfmPf   13天前   18   0   0 javajavascript

说明:今天在做Nacos、Dubbo整合的时候,在父模块中做了版本限制,出错后就又把版本控制什么都删掉,回退到最开始的状态,此时父模块下面的服务右侧的maven里面没有pluginsdependence,然后项目全都报错。 问题描述&解决 问题解决:排查原因是因为父模块里面引入了下面数据库驱动的依赖,去掉后刷一下pom文件就可以了 问题分析 原因是,我上面有版本控制,控制MySQL的版本是5.1.47;而MySQL5.X的版本需要用下面这个连接驱动依赖,8.X的版本才用上图中的 <dependency> <groupId>mysql</group...

  TEZNKK3IfmPf   13天前   9   0   0 javamavenSpringBoot

  ${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换 ‘{}’是sql的参数占位符,Mybatis会将sql中的{}替换为?号,在sql执行前会使用PreparedStatement的参数设置方法,按序给sql的?号占位符设置参数值。 ‘’方式能够很大程度防止sql注入。\(方式无法防止Sql注入。\)方式一般用于传入数据库对象,例如传入表名。 为什么可以防止SQL注入? 1.什么是SQL注入答:SQL注入是通过把SQL命令插入到web表单提交或通过页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL指令。  注入的本质是...

  TEZNKK3IfmPf   13天前   9   0   0 javasql

说明:本文介绍设计模式中,创建型中的原型模式; 飞机大战 创建型设计模式关注于对象的创建,原型模式也不例外。如简单工厂和工厂模式中提到过的飞机大战这个例子,游戏中飞机、坦克对象会创建许许多多的实例,每个实例除了坐标,是一模一样的,如果每次都用关键字new去创建,是非常消耗时间的。 (Enemy,敌人抽象类) /敌人抽象类/ publicabstractclassEnemy{ /敌人的坐标/ protectedintx; /敌人的坐标/ protectedinty; /抽象方法/ publicEnemy(intx,inty){ this.x=x; this.y=y; } /绘制...

  TEZNKK3IfmPf   13天前   20   0   0 java设计模式

说明:本文介绍设计模式中,创建型设计模式中的最后一个,建造者模式; 入学报道 创建型模式,关注于对象的创建,建造者模式也不例外。假设现在有一个场景,高校开学,学生、教师、职工都要办理相关的报道手续,如签到、个人信息录入、分配身份证明(学生证、教师证、职工证)等等; 首先,创建一个抽象类,如下: (Person,人员类,有签到、个人信息、身份证明属性) /人员/ publicclassPerson{ /签到/ privateStringsignIn; /个人信息/ privateStringprofile; /身份证明/ privateStringidCard; publicStr...