自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 Spring中事务传播机制

Spring事务传播机制是指在一个事务方法调用另一个事务方法时,Spring如何管理这些方法之间的事务边界。Spring在接口中定义了七种事务传播行为,以满足不同的业务需求。

2024-08-25 13:56:04 681

原创 volatile关键字介绍

Java中的volatile关键字主要用于多线程编程中,其作用包括保证变量的可见性和禁止指令重排。然而,它并不保证原子性,对于复合操作需要使用其他同步机制来保证。在使用volatile时,需要仔细考虑其适用性,并理解其背后的原理和限制。

2024-08-03 14:37:59 239 1

原创 数据同步工具DataX介绍

定义:DataX是一个异构数据源离线同步工具,致力于实现包括关系型数据库(如MySQL、Oracle等)、HDFS(Hadoop分布式文件系统)、Hive、ODPS(分布式海量数据处理平台)、HBase等多种异构数据源之间稳定高效的数据同步功能。平台支持:广泛适用于阿里巴巴集团内部及外部用户,是解决异构数据源同步问题的重要工具。DataX作为一款高效、易用、功能丰富的数据同步工具,在数据迁移领域具有重要地位。

2024-07-21 13:45:46 413

原创 Java中静态代理和动态代理介绍和使用

在Java中,代理模式是一种常用的设计模式,用于为其他对象提供一种代理以控制对这个对象的访问。代理模式主要有两种实现方式:静态代理和动态代理。

2024-07-21 10:53:18 876

原创 Java反射机制

Java反射(Reflection)机制是指。通过反射,程序可以在运行时获取类的信息,包括类的构造函数、方法、字段等的所有信息,并可以通过这些信息来创建对象、调用方法以及访问和修改字段的值。

2024-07-20 18:51:29 692

原创 从源码分析Springboot自动配置原理

application.properties或application.yml:开发者可以在目录下提供或文件来覆盖自动配置的默认值。这些文件通常用于定义应用程序的特定配置。@Configuration和@Bean:如果自动配置不满足需求,开发者可以编写自己的类,并使用@Bean注解来定义和配置自己的bean。这些自定义配置将覆盖自动配置的相同bean。

2024-06-30 14:38:57 1064

原创 PL/SQL入门到实践

pl/sql程序设计中的标识符定义与sql的标识符定义的要求相同。标识符名不能超过30字符第一个字符必须为字母不分大小写不能是sql保留字DECLAREBEGIN-- 如果这里employee_id为1001的员工不存在,将会抛出NO_DATA_FOUND异常EXCEPTIONEND;DECLARE-- 声明用户定义异常BEGIN-- 触发用户定义异常END IF;-- 其他代码...EXCEPTIONEND;

2024-06-29 17:49:39 743

原创 从Oracle自定义函数和存储过程案例学习PL/SQL的使用

*综述:大小值校验入参:checkcolumn:校验列列名 lowvalue:小值 highvalue:大值 isinclude:是否包含边界 1是 0否输出: 布尔值,判断通过与否 0不通过 1通过判断内容:1、判断校验列列名checkcolumn是否为数值型,如为非数值型-->0不通过;A.判断小值lowvalue<校验列列名checkcolumn<大值highvalue-->1通过;B.当小值为空,大值不为空时,判断校验列列名checkcolumn<大值highvalue-->1通过;

2024-06-29 13:43:36 1171

原创 Oracle中常用内置函数

Oracle常用内置函数介绍

2024-06-28 16:02:00 1381

原创 CompletableFuture 基本用法

是 Java 8 引入的一个功能强大的类,用于异步编程和并发处理。它提供了丰富的 API 来处理异步任务的结果,支持函数式编程风格,并允许通过链式调用组合多个异步操作。

2024-06-22 21:33:37 1713

原创 多线程基础

构造函数:使用给定的Callable对象创建新的FutureTask。Callable的call方法会在任务执行时被调用。:使用给定的Runnable对象和结果值创建新的FutureTask。Runnable的run方法会在任务执行时被调用,并且返回的结果将是构造函数中提供的result。执行任务由于FutureTask实现了Runnable接口,因此可以直接将其传递给Thread的构造函数来创建线程,并启动线程以执行任务。获取结果get():等待计算完成,然后获取其结果。

2024-06-22 17:57:52 935

原创 线程池ThreadPoolExecutor源码分析

继承Thread类通过继承Thread类并重写其run方法来创建线程。具体步骤包括定义Thread类的子类,在子类中重写run方法以实现线程的具体逻辑,然后创建子类的实例并调用其start方法来启动线程。实现Runnable接口通过实现Runnable接口并重写其run方法来创建线程。这种方式相较于继承Thread类更为灵活,因为Java不支持多重继承,而实现接口则没有这个问题。

2024-06-16 17:04:05 751

原创 AtomicInteger类介绍

AtomicInteger是系统底层保护的int类型,通过对int类型的数据进行封装,提供执行方法的控制进行值的原子操作。但它并不等同于Java的基本数据类型Integer。从JAVA 1.5开始,AtomicInteger就被引入到了Java的并发包中,成为java.util.concurrent.atomic包下的一个类。

2024-06-16 10:57:37 549

原创 双Token方案实现Token自动续期(基于springboot+vue前后端分离项目)

jwt理论介绍springboot+vue项目中使用jwt实现登录认证本篇文章的代码是在springboot+vue项目中使用jwt实现登录认证的基础上实现的Token自动续期的功能。双token解决方案是一种用于增强用户登录安全性和提升用户体验的认证机制。它主要涉及两个令牌:访问令牌(accessToken)和刷新令牌(refreshToken)。

2024-06-10 16:44:05 2308

原创 springboot+vue前后端分离项目中使用jwt实现登录认证

可以看见,请求几次成功后,便显示令牌过期,这是因为,为了测试方便,我们颁发令牌时有效期设置的10秒。1.点击登录后,后端给前端办法jwt令牌,前端将其存入sessionStorage中。3.继续多次点击【请求后端受保护的接口】按钮。重新登录并点击【请求后端受保护的接口】按钮。2.点击【请求后端受保护的接口】按钮。4.在请求接口中不传递Token。

2024-06-10 13:31:24 934 1

原创 JWT理论介绍

JWT(JSON Web Token)是一个开放标准(RFC 7519)定义的方式,用于在各方之间安全地传输信息。这些信息可以是验证、授权、信息交换等。JWT 允许在请求之间安全地传输信息,因为信息是经过数字签名的,并且可以被验证和信任。JWT 通常用于实现无状态的、基于令牌的认证。

2024-06-10 09:32:19 764

原创 Maven常见生命周期阶段的作用

你可以使用Maven的命令行界面(CLI)来运行这些阶段,如mvn clean install,这将会执行clean和install阶段以及它们之前的所有阶段(validate、compile、test、package)。此外,Maven还会将所有项目依赖的库打包到最终的分发包中(对于JAR项目,通常会将依赖的库打包到target/lib目录或者将依赖包含在JAR文件的Class-Path中,具体取决于配置)。例如,在test阶段的所有目标执行完毕后,package阶段的目标才会开始执行。

2024-05-30 10:11:31 895

原创 Windows系统下安装weblogic及使用weblogic部署项目

方式一:到oracle官网下载,下载地址为:https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html。如果不知道jdk安装目录在哪里,可以通过查看环境变量来找到jdk安装目录,如下图,在环境变量中找到JAVA_HOME,这个变量的值,就是jdk的安装目录。这就我们的域, 后续操作都是在域里操作。找到jdk的安装目录之后,打开该目录,然后打开下面的jre/bin,将文件放到这个目录下。

2024-05-24 17:44:21 1733 1

原创 websocket实现web消息推送(基于Java注解实现websocket服务终端)

Web消息通知是指Web系统向用户发送的有关系统更新、重要事件或消息的通知,以便用户及时了解系统的最新动态。在App和网页应用中,消息通知是最常见的信息交换方式之一,用于产品与用户之间的信息同步,如产品更新、信息提醒、互动提醒、新消息通知等,从而为用户提供帮助,使其能够快速获取对应的通知信息。如图所示就是一个文本消息推送的案例,当某一个登录用户收到新消息时,网页端能够实时更新消息的数量。web消息推送在csdn官网的表现形式是,当有新消息到来时,消息处出现一个小红点,提示有未读消息。

2024-05-24 16:33:51 2309

原创 Spring Security 基础使用教程

实际的项目开发中,我们往往会自定义一个登录的页面,而不会使用spring security提供的默认登录页面进行登录。所以下面将介绍如何自定义这些配置。引入thymeleaf依赖创建templates文件夹,创建登录页面,登录成功页面,登录失败页面和index页面,放入templates中。其中登录页面的代码如下:新建配置类新建一个controller访问http://localhost:8080/index.html进入我们自定义的登录界面。

2024-05-23 17:02:14 941

原创 synchronized关键字的使用

synchronized 是 Java 中的一个关键字,用于实现多线程之间的同步访问。它用于确保在多线程环境中,同一时间只有一个线程可以执行某个方法或代码块。这是通过锁定一个对象或类来实现的,以防止多个线程同时访问共享资源,从而导致数据不一致或其他并发问题。在方法声明中使用synchronized,将其放在范围操作符(如public)后,返回类型声明(如void)之前。这样,当一个线程进入该方法时,其他线程将被阻塞,直到该线程退出该方法。例如:// 方法体。

2024-05-21 15:37:32 417

原创 websocket简单使用--基于springboot+vue项目

WebSocket是一种在单个TCP连接上进行全双工通信的协议。该协议于2011年被IETF定为标准RFC 6455,并由RFC7936补充规范,同时WebSocket API也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。这种持久连接使得服务器可以主动向客户端推送数据,而不需要等待客户端的请求。

2024-05-20 17:34:43 1161

原创 设计模式--单例模式

设计出单例模式的背景主要是为了解决某些场景下需要确保一个类只有一个实例,并提供一个全局访问点的问题。

2024-05-20 15:43:37 1019

原创 HDFS集群环境部署

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考配置HDFS集群,我们主要涉及到如下文件的修改:workers: 配置从节点(DataNode)有哪些hadoop-env.sh: 配置Hadoop的相关环境变量core-site.xml: Hadoop核心配置文件hdfs-site.xml: HDFS核心配置文件。

2023-11-15 09:49:15 411

原创 浅析预编译防止SQL注入的原理

要理解防止SQL注入的原理,那么首先需要知道什么是SQL注入。百度百科对SQL注入的解释如下:对于理论,这里不作过多赘述,通过一个例子来说明什么是SQL注入。假如我们有一个登录页面,登录页面大致如下图所示。这个时候,用户正常登陆就是输入用户名和密码进行登录。我们大致写一个后台的登录逻辑(这里大家不必过于较真,实际项目的登录逻辑肯定与下面代码是有出入的,这里主要是为了对SQL注入进行一个简单的演示// 数据库连接信息try {// 加载驱动// 建立数据库连接。

2023-08-18 17:21:48 729

原创 虚拟机上搭建Hadoop运行环境

比如在上面这台虚拟机上面配置了上述主机名称和IP的映射,那么我要在这台主机访问另外几个IP,只需要访问他们的主机名即可。最大磁盘大小在条件允许的情况下建议是设置40G以上, 20G可能后续还需扩容,这里我们设置的50G.集群化软件之间需要通过端口互相通讯,为了避免出现网络不通的问题,我们可以简单的在集群内部关闭防火墙。手动分区的话,选择“我要配置分区”,点击完成,然后弹出配置界面,进行配置即可,这里不作赘述。设置日期和时间,将日期和时间设置为当前时间,设置完成后点击完成即可。为了方便可以选择自动分区。

2023-08-04 16:25:50 3030

原创 vue导出文本文件

vue将数据写入文本文件并下载。我们通常用到的功能往往是导出EXCEL文件、PDF文件等,导出普通的文本文件用的很少,但也有可能会在工作中遇到,所以今天分享一个vue前端导出文本文件的方式。

2023-06-30 16:40:57 1358

原创 oracle数据库批量插入

之所以出现上面的错误,是因为对oracle数据库的多行插入语句不够了解。oracle数据库的插入多行数据和mysql数据库中插入多条数据的SQL语句并不相同。

2023-05-30 16:55:59 2464

原创 vue生命周期(二)----组件运行和销毁阶段

vue生命周期函数

2022-10-16 15:05:46 307

原创 vue生命周期详解(一)----创建期间的生命周期函数

vue生命周期钩子函数

2022-10-16 14:42:04 1661

原创 ES6新特性----let基本用法、暂时性死区和变量提升的区别

ES6新增了let命令,用来声明变量。它的用法类似于var,但由它声明的变量,只在let命令所在的代码块内有效。

2022-10-16 11:18:08 895

原创 SVN的安装及客户端使用教程

版本控制工具svn的简单使用

2022-10-13 14:38:31 445

原创 mybatis中${}和#{}的区别

mybatis中#{}和${}的区别

2022-08-17 20:49:43 278

原创 SpringMVC入门

springmvc入门

2022-06-23 17:34:28 140

原创 Spring框架IOC注解和配置的使用方式

Spring框架IOC注解

2022-06-15 21:25:11 156

原创 Spring中IOC容器概念作用及其基本应用

spring学习

2022-06-13 21:21:30 609

原创 mybatis缓存机制

  学习了mybatis缓存机制,现对其进行总结。

2022-06-09 11:50:32 4429 5

原创 mybatis整体架构

了解mybatis整体架构

2022-06-06 22:11:17 1303

原创 什么是反射?

反射的解释   JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的法的功能称为java语言的反射机制。  反射就是把java类中的各种成分映射成一个个的Java对象。例如:一个类有:成员变量、方法、构造方法、包等等信息,利用反射技术可以对一个类进行解剖,把个个组成部分映射成一个个对象。类的加载过程及内存分析  当我们new Student()时,首先看方法区是否已经存储Stude

2022-05-30 21:20:35 118

原创 Java中throw和throws的区别

1.throw是语句抛出一个异常,一般是在代码块的内部,当程序出现某种逻辑错误时由程序员主动抛出某种特定类型的异常2.throws是声明一个异常,写在方法函数头3.当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理4.throws出现在方法函数头;而throw出现在函数体.throws表示出现异常的一种可能性,并不一定会发生这些异常; throw则是抛出了异常,执行throw则一定抛出了某种异常对象。两者都是消极处理异常的方式(这里的消极并不是说这种方

2022-05-26 20:25:47 2014

空空如也

空空如也

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

TA关注的人

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