java
文章平均质量分 66
Relievedz
没有伞的孩子,必须努力奔跑!
展开
-
springboot项目打包部署
springboot打包的前提条件jdk必须17以后不然本地运行不来(我用的jdk是22)6、java -jar 文件名 出现这个画面就是运行成功了。2、打开项目的maven-项目名-package。4、打开项目文件会出现一个jar的文件。查看自己电脑jdk版本可以参考(1、idea配置打包文件。5、在这个页面cmd。原创 2024-05-11 12:59:07 · 459 阅读 · 2 评论 -
完美解决Windows10下-更换JDK环境变量后,在cmd下执行仍java -version然出现原来版本的JDK的问题
在完成 JDK 22本地解压、配置之后,命令行输入 java -version 仍然显示 1.8.0_221 的版本信息,而非 22,问题出现。顺序存在问题,也会出现 java -version 不改变的情况。其顺序可以通过上图右侧“上移”的按钮改变。按照常理,这个时候我们可以在命令行输入 java -version 查看新装 Java 的版本信息。本人欲将 JDK 1.8 通过安装包的方式升级为 JDK 22。环境变量中配置的 PATH 变量系统是。原创 2024-05-11 12:52:23 · 1304 阅读 · 0 评论 -
Java配置自定义校验
/public class StateValidation implements ConstraintValidator {validatedBy = {StateValidation.class}//指定提供校验器规则的类。if ("已发布".equals(value) || "草稿".equals(value)) {@Retention(RUNTIME) //元注解。@Target({FIELD}) //元注解。//提供校验失败后的提示消息。原创 2024-04-06 14:38:24 · 356 阅读 · 0 评论 -
JWT令牌的使用
JWT (JSON Web Token) 是一种基于 JSON 的轻量级的开放标准(RFC 7519),用于在不同系统之间安全地传输信息。JWT 由三部分组成,分别是头部(Header)、载荷(Payload)和签名(Signature):1. **头部(Header)**:包含了两部分信息,即令牌的类型(即JWT)和所使用的签名算法(例如HMAC SHA256或RSA)。2. **载荷(Payload)**:也称为声明(claims),包含了需要传输的数据,例如用户的身份信息、权限等。原创 2024-03-16 19:49:18 · 984 阅读 · 0 评论 -
报Invalid value type for attribute ‘factoryBeanObjectType‘: java.lang.String错误
在springboot中使用Mybatis出现Invalid value。检查pom文件里面的mybatis。可能是缺少这个依赖,或者版本过低。1、没有使用mybatis。原创 2024-03-15 22:12:41 · 5781 阅读 · 3 评论 -
java基础面试
反射多线程IO流静态导入可变参数泛型枚举注解。原创 2023-06-06 11:32:37 · 432 阅读 · 0 评论 -
RabbitMQ的基本概念
MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信。AMQP,即(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。2006年,AMQP 规范发布。类比HTTP。2007年,Rabbit 技术公司基于 AMQP 标准开发的 RabbitMQ 1.0 发布。原创 2023-06-05 09:56:53 · 615 阅读 · 0 评论 -
no processes deployed with key ‘xxxx‘
no processes deployed with key 'qingjia'原创 2023-05-09 10:27:00 · 442 阅读 · 0 评论 -
Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerExcepti
原因分析:1、检查自己的pom是否加错文件,发生冲突这是我自己项目加错了报错了。原创 2023-04-23 09:42:58 · 22203 阅读 · 1 评论 -
报错Unknown property used in expression: ${day<=2}
/2 启动流程实例。//2 启动流程实例。原创 2023-04-21 10:43:32 · 1219 阅读 · 0 评论 -
Activiti基本使用2
流程定义ProcessDefinition和流程实例ProcessInstance是Activiti重要的概念,类似于Java类和Java实例的关系启动一个流程实例表示开始一次业务流程的运行,比如员工请假流程部署完成,如果张三要请假就可以启动一个流程实例,如果李四要请假也启动一个流程实例,两个流程的执行互相不影响,就好比定义一个 java 类,实例化两个对象一样,部署的流程就好比 java 类,启动一个流程实例就好比 new 一个 java 对象。原创 2023-04-20 11:54:13 · 520 阅读 · 0 评论 -
Activiti的基本使用
Activiti 的运行支持必须要有这 25 张表的支持,主要是在业务流程运行过程中,记录参与流程的用户主体,用户组信息,以及流程的定义,流程执行时的信息,和流程的历史信息等等1、 表的命名规则和作用观察创建的表,我们发现 Activiti 的表都以 act_ 开头,紧接着是表示表的用途的两个字母标识,也和 Activiti 所提供的服务的 API 对应:ACT_RE:RE 表示 repository,这个前缀的表包含了流程定义和流程静态资源 (图片、规则、等等)原创 2023-04-20 09:48:06 · 2973 阅读 · 0 评论 -
Activiti入门
工作流(Workflow),就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程,从而实现某个预期的业务目标,或者促使此目标的实现”。通俗来讲,就是业务上一个完整的审批流程。例如员工的请假,出差,外出采购,合同审核等等,这些过程,都是一个工作流。activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN进行定义,业务流程按照预先定义的流程进行执行。原创 2023-04-19 14:53:25 · 893 阅读 · 0 评论 -
Invalid bound statement (not found):报错解决方法
mapper-locations: classpath:com/atguigu/auth/mapper/xml/*.xml # 加载xml文件。maven默认情况下,只会加载编译ser-main-java目录里面java类型文件,其他类型文件不会进行加载。-- maven记载机制1、在pom.xml添加-->1、吧xml文件放到resources目录下面。2、通过配置方式进行加载。1、在pom.xml。2、项目配置文件添加。原创 2023-04-17 11:44:12 · 863 阅读 · 0 评论 -
MyBatis-Plus的基本操作
*** @description: 自定义全局异常类**/@Data//状态码//描述信息/*** 通过状态码和错误消息创建异常对象*//*** 接收枚举类型对象*/@Override'}';原创 2023-04-06 10:57:12 · 1241 阅读 · 0 评论 -
java基础知识汇总
数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。1.2.1第一种数据类型[] 数组名示例:int[] arr;char[] arr;1.2.2第二种数据类型 数组名[]示例:int arr[];char arr[];原创 2023-04-03 16:18:42 · 13264 阅读 · 7 评论 -
用户授权RBAC
优点:系统设计时定义好查询工资的权限标识,即使查询工资所需要的角色变化为总经理和部门经理也不需要修改授权代码,系统可扩展性强。主体.hasRole("总经理角色id") || 主体.hasRole("部门经理角色id")){根据上边的例子发现,当需要修改角色的权限时就需要修改授权的相关代码,系统可扩展性差。基于角色的访问控制(Role-Based Access Control)主体.hasPermission("查询工资权限标识")){主体.hasRole("总经理角色id")){原创 2023-03-20 10:15:17 · 448 阅读 · 0 评论 -
Spring Security用户认证
"user_name": "{\"createTime\":\"2022-09-28T08:32:03\",\"id\":\"51\",\"name\":\"学生2\",\"sex\":\"1\",\"status\":\"1\",\"username\":\"stu2\",\"utype\":\"101001\"}",//如果查到了用户拿到正确的密码,最终封装成一个UserDetails对象给spring security框架返回,由框架进行密码对比。原创 2023-03-17 10:17:30 · 312 阅读 · 0 评论 -
OAuth2认证流程
在前边我们提到微信扫码认证,这是一种第三方认证的方式,这种认证方式是基于OAuth2协议实现,OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务,因而OAUTH是开放的。业界提供了OAUTH的多种实现如PHP、JavaScript,Java,Ruby等各种语言开发包,大大节约了程序员的时间,因而OAUTH是简易的。原创 2023-03-16 11:45:47 · 6337 阅读 · 2 评论 -
java认证授权(Spring Security)
认证功能几乎是每个项目都要具备的功能,并且它与业务无关,市面上有很多认证框架,如:Apache Shiro、CAS、Spring Security等。由于本项目基于Spring Cloud技术构建,Spring Security是spring家族的一份子且和Spring Cloud集成的很好,所以本项目选用Spring Security作为认证服务的技术框架。Spring Security 是一个功能强大且高度可定制的身份验证和访问控制框架,它是一个专注于为 Java 应用程序提供身份验证和授权的框架。原创 2023-03-16 11:34:24 · 2339 阅读 · 1 评论 -
xxl-job registry fail
1、检查nacos是否正确,一定要注意格式,一般都是addersses的地址问题,一定的要加/不然找不到,本机就不要使用ip了,用localhost。//调用抽象类的方法执行任务。参数:分片序号、分片总数、消息类型、一次最多取到的任务数量、一次任务调度执行的超时时间。2、注意自己的调度中心参数是否正确。// 分片序号,从0开始。原创 2023-03-10 09:49:25 · 1546 阅读 · 0 评论 -
分布式事务问题
一次课程发布操作需要向数据库、redis、elasticsearch、MinIO写四份数据,这里存在分布式事务问题。什么是分布式事务?首先理解什么是本地事务?平常我们在程序中通过spring去控制事务是利用数据库本身的事务特性来实现的,因此叫数据 库事务,由于应用主要靠关系数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。原创 2023-03-09 15:04:28 · 1581 阅读 · 0 评论 -
Freemarker模板引擎
FreeMarker 是。根据前边的数据模型分析,课程预览就是把课程的相关信息进行整合,在课程预览界面进行展示,课程预览界面与课程发布的课程详情界面一致,保证了教学机构人员发布前看到什么样,发布后也会看到什么样。freemarker提供很多指令用于解析各种类型的数据模型,参考地址:http://freemarker.foofun.cn/ref_directives.html。所以模板引擎就是:模板+数据=输出,Jsp页面就是模板,页面中嵌入的jsp标签就是数据,两者相结合输出html网页。原创 2023-03-07 10:32:41 · 839 阅读 · 0 评论 -
FFmpeg视频处理
视频上传成功后需要对视频进行转码处理。什么是视频编码?查阅百度百科如下:原创 2023-03-03 10:15:42 · 548 阅读 · 0 评论 -
XXL-JOB的基本使用
子任务:每个任务都拥有一个唯一的任务ID(任务ID可以从任务列表获取),当本任务执行结束并且执行成功时,将会触发子任务ID所对应的任务的一次主动调度。下边要重点说的是分片广播策略,分片是指是调度中心将集群中的执行器标上序号:0,1,2,3...,广播是指每次调度会向集群中所有执行器发送调度请求,请求中携带分片参数。覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;如下图,我们会启动多个执行器组成一个集群,去执行任务。原创 2023-03-01 10:10:40 · 4979 阅读 · 1 评论 -
搭建XXL-JOB
首先下载XXL-JOB我使用2.3.1版本: https://github.com/xuxueli/xxl-job/releases/tag/2.3.1解压xxl-job-2.3.1.zip使用IDEA打开解压后的目录xxl-job-admin:调度中心xxl-job-core:公共依赖xxl-job-executor-samples:执行器Sample示例(选择合适的版本执行器,可直接使用)原创 2023-02-28 20:37:34 · 683 阅读 · 0 评论 -
XXL-JOB
文档:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B。只要职责是注册服务、任务执行服务(接收到任务后会放入线程池中的任务队列)、执行结果上报、日志服务等。5.当用户在调度中心查看任务日志,调度中心请求任务执行器,任务执行器读取任务日志文件并返回日志详情。负责执行具体的业务处理。原创 2023-02-28 20:07:50 · 417 阅读 · 0 评论 -
分布式任务处理
视频上传成功需要对视频的格式进行处理,如何用Java程序对视频进行处理呢?这里有一个关键的需求就是当视频比较多的时候我们如何可以高效处理。如何去高效处理一批任务呢?1、多线程多线程是充分利用单机的资源。2、分布式加多线程充分利用多台计算机,每台计算机使用多线程处理。方案2可扩展性更强。方案2是一种分布式任务调度的处理方案。什么是分布式任务调度?我们可以先思考一下下面业务场景的解决方案:某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。原创 2023-02-28 20:04:54 · 491 阅读 · 0 评论 -
Minio服务器上传图片视频访问不了
代理权限,选择对应的桶,将其代理权限也设置为公有。原创 2023-02-28 16:01:21 · 4001 阅读 · 4 评论 -
断点续传实现
通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成,需要客户重新上传,用户体验非常差,所以对于大文件上传的要求最基本的是断点续传。什么是断点续传:原创 2023-02-27 10:18:59 · 3071 阅读 · 0 评论 -
Redis
Redis 中的分片类似于 MySQL 的分表操作,分片是将数据划分为多个部分的方法,对数据的划分可以基于键包含的 ID、基于键的哈希值,或者基于以上两者的某种组合。当主服务器出现故障时,Redis 常用的做法是新开一台服务器作为主服务器,具体步骤如下:假设 A 为主服务器,B 为从服务器,当 A 出现故障时,让 B 生成一个快照文件,将快照文件发送给 C,并让 C 恢复快照文件的数据。最后,让 B 成为 C 的从服务器。中间层的服务器是最上层服务器的从服务器,又是最下层服务器的主服务器。原创 2023-02-23 16:03:04 · 395 阅读 · 0 评论 -
01.并发编程的优缺点
一直以来并发编程对于刚入行的小白来说总是觉得高深莫测,于是乎,就诞生了想写点东西记录下,以提升理解和堆并发编程的认知。为什么需要用的并发?凡事总有好坏两面,之间的trade-off是什么,也就是说并发编程具有哪些缺点?以及在进行并发编程时应该了解和掌握的概念是什么?这篇文章主要以这三个问题来谈一谈。转载 2023-02-23 15:40:07 · 178 阅读 · 0 评论 -
Maximum upload size exceeded;nested exception is java.lang.IllegalStateException
springboot文件上传报错,因为文件大小超过限制,需要配置允许上传的文件的大小。因为 springboot 默认单个文件上传大小是1MB,默认多个文件上传总大小是10MB。原创 2023-02-22 09:54:33 · 1357 阅读 · 0 评论 -
java项目,实现简单的学生成绩管理系统
System.out.println("-----欢迎来到学生成绩管理系统-----");System.out.println("科目1:" + list.get(0));System.out.println("科目2:" + list.get(1));System.out.println("科目3:" + list.get(2));System.out.println("请输入该学生的三门课程成绩:");System.out.println("该学生的成绩如下:");// 将学生成绩放入Map中。原创 2023-02-13 20:20:59 · 459 阅读 · 0 评论 -
java面试题
首先分页参数放到ThreadLocal中,拦截执行的sql,根据数据库类型添加对应的分页语句重写sql,例如:(select * from table where a) 转换为 (select count(*) from table where a)和(select * from table where a limit ,)ResultMap:自定义映射规则,当查询的字段名和映射类型的属性不匹配时可以通过ResultMap自定义映射规则,也可以实现一对多、一对一映射。2、树型表的标记字段是什么?原创 2023-02-13 10:02:59 · 189 阅读 · 0 评论 -
IDEA生成类和方法注释模板设置
IDEA生成类和方法注释模板设置原创 2023-02-08 09:43:19 · 161 阅读 · 0 评论 -
Swagger怎么使用
OpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程,目前版本是V3.0,并且已经发布并开源在github上。Swagger是全球最大的OpenAPI规范(OAS)API开发工具框架,Swagger是一个在线接口文档的生成工具,前后端开发人员依据接口文档进行开发。只要添加Swagger的依赖和配置信息即可使用它。原创 2023-02-07 15:53:03 · 607 阅读 · 0 评论 -
MyBatis-Plus 代码生成类
/ TODO 修改服务名以及数据表名 我自己数据的名字是 xc_content。// 一般情况下要先生成 DTO类 然后修改此参数再生成 PO 类。// 选择 freemarker 引擎,默认 Velocity。//自己数据库名 我的数据库名 xc_content。// TODO 默认生成entity,需要生成DTO修改此变量。// Boolean类型字段是否移除is前缀处理。* MyBatis-Plus 代码生成类。//生成路径 自己项目的路径。// 自动填充字段配置。原创 2023-02-07 10:06:47 · 331 阅读 · 0 评论 -
linux安装docker CentOS7安装DockerCompose
linux安装docker和CentOS7安装DockerCompose原创 2022-10-27 09:52:04 · 165 阅读 · 0 评论 -
解决:Method com/mchange/v2/c3p0/impl/NewProxyPreparedStatement.isClosed()Z is abstract
报错:1、c3p0版本过低原创 2022-05-10 11:44:15 · 287 阅读 · 0 评论