自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jasypt中加解密类使用

什么是jasyptJasypt(Java Simplified Encryption)是一个简单易用的Java加密库,用于在Java应用程序中对敏感数据进行加密和解密。它提供了多种加密算法和强大的加密功能,使得开发人员可以方便地保护应用程序中的敏感信息,如密码、API密钥、数据库连接信息等。总之,Jasypt为Java开发人员提供了一个简单而强大的加密解密工具,帮助他们保护应用程序中的敏感信息,提高数据安全性。jasypt里面的加解密类,以及这些加解密类的示例代码如下。

2024-05-21 23:36:35 813

原创 aes生成密钥、加密、解密算法

生成AES密钥、加密和解密数据的示例代码。

2024-05-21 22:50:54 831

原创 aes算法概念介绍

AES(高级加密标准)是一种对称密钥加密算法,用于加密和解密数据。它是目前广泛应用的密码学标准之一,被用于保护敏感信息,如网络通信、文件加密和数据库加密等领域。:AES 是一种对称密钥加密算法,意味着加密和解密使用相同的密钥。这就要求发送方和接收方在通信前必须协商好密钥。:AES 将明文数据分成固定长度的数据块(128 位),然后对每个数据块进行加密。:AES 支持三种分组长度,分别是 128 位、192 位和 256 位。这些长度决定了密钥的长度,从而影响了加密的安全性。

2024-05-21 22:14:40 903

原创 什么是工厂模式

在工厂模式中,我们定义一个工厂类,该工厂类负责创建对象。工厂类根据客户端的请求,选择合适的对象进行创建,并将创建好的对象返回给客户端。工厂模式是一种创建型设计模式,它提供了一种将对象的创建过程封装起来的方式。它的主要目的是将对象的创建和使用分离开来,从而降低系统的耦合度。具体产品类:实现抽象产品类定义的接口,具体产品类是工厂模式所创建的对象。具体工厂类:实现抽象工厂类定义的所有方法,具体工厂类是工厂模式的核心。抽象工厂类:提供创建产品的接口,它包含了多个创建产品的方法。在上面的代码中,抽象产品类是。

2024-05-20 20:21:48 126

原创 对象定义成final类型还能改变吗

如果一个Java对象被定义为final类型,那么它的引用不能被改变,但是对象本身的状态仍然可以被修改。这意味着你可以改变final对象的属性,但是不能将其引用指向另一个对象。例如,下面的代码中,虽然person对象被声明为final类型,但是它的属性name和age仍然可以被修改。因此,final关键字只是保证了对象的引用不会被改变,但并不保证对象本身的状态不会被改变。

2024-05-11 15:10:46 225

原创 TCP协议、HTTP协议、HTTP请求、HTTP长连接

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层协议。它能够提供可靠的、有序的、面向连接的数据传输服务,通过三次握手建立连接,四次挥手终止连接。TCP协议的特点:面向连接:在数据传输前需要先建立连接,传输完毕后需要断开连接。可靠性:TCP协议通过校验和、确认机制、重传机制等手段确保数据的可靠传输。有序性:TCP协议通过序号和确认机制保证数据的有序传输。

2024-05-11 15:09:43 415

原创 kafka的简单使用

kafka的简单使用

2024-05-10 14:48:31 1006 2

原创 线程的ThreadLocal

在上面的示例代码中,我们创建了一个MyThread类实现了Runnable接口,然后在run()方法中使用ThreadLocal对象来存储和获取当前线程的变量副本。最后,我们创建了三个线程并启动,每个线程都会生成一个随机数并打印出来,由于每个线程都有自己独立的变量副本,因此它们之间不会相互干扰。ThreadLocal是Java语言中的一个线程内部存储类,可以用来在多线程环境下保证每个线程都拥有自己独立的变量副本,避免了多线程间的数据共享问题。

2024-05-09 11:01:46 299

原创 分页PageHelper、PageInfo

使用PageHelper,只需要在查询方法前调用PageHelper.startPage(pageNum,pageSize)方法即可实现分页查询。PageHelper是一个基于MyBatis的分页插件,可以帮助开发者快速、方便地实现分页功能。PageInfo是PageHelper插件提供的一个分页信息类,可以用来获取分页查询的相关信息,如总记录数、总页数、当前页码、每页显示的数据条数、当前页的数据列表等。使用PageHelper和PageInfo可以方便地实现分页查询,并且代码量较少,易于维护。

2024-05-09 09:22:51 521

原创 如何定义数组

如何定义数组

2024-05-08 16:44:03 113

原创 并发和并行的区别

而并行是指多个任务在同一时刻同时执行,通常需要多个处理器或多个核心来实现。Java中的并行可以通过使用多线程来实现,但是需要注意线程之间的同步和协作问题。并发是指在同一时间段内,多个任务在交替执行,每个任务都有可能被中断,然后转而去执行另一个任务。Java中的线程就是一种并发执行的机制。总的来说,Java并发是指多个任务在同一时间段内交替执行,而Java并行是指多个任务在同一时刻同时执行。Java并发和并行是两个不同的概念。

2024-04-30 16:46:22 150 1

原创 什么是CPU,什么是寄存器,什么是程序计数器

程序计数器是CPU中的一种寄存器,用于存储下一条要执行的指令的地址。程序计数器在CPU执行指令时不断地自增,指向下一条要执行的指令的地址,从而实现程序的顺序执行。当CPU执行跳转指令时,程序计数器的值会被修改为跳转到的指令的地址。寄存器是CPU内部的一种存储器件,用于暂时存储指令和数据,是CPU中最快速的存储器。寄存器的作用是存储CPU执行指令时需要的数据和地址,以及存储CPU执行指令的结果。CPU是中央处理器的缩写,是计算机的核心部件,负责执行指令和处理数据。CPU包括运算器、控制器和寄存器等部件。

2024-04-30 16:10:06 397

原创 什么是类文件

Java类文件是Java源代码编译后生成的二进制文件,它包含了Java程序中一个类的定义、方法、变量和常量等信息。Java类文件通常以.class为扩展名,它是Java程序的基本执行单位,可以在Java虚拟机(JVM)上执行。Java类文件是Java程序跨平台的关键,因为Java类文件可以在任何支持Java虚拟机的操作系统上运行,而不需要重新编译。

2024-04-30 14:29:57 135 1

原创 maven打包的插件作用

该插件还可以将应用程序打包成一个可执行的“ jar”,该jar包只包含应用程序的代码和依赖项,而不包含Spring Boot本身的代码。(打可执行的jar包,必选,否则打出来的是不可执行的jar即java -jar XXX.jar)在 Maven 中,jar 是指将项目打包成一个可独立运行的 JAR 文件,该文件包含了项目的所有依赖项和资源文件。在项目构建过程中,该插件会自动执行,生成源代码的jar包和JavaDoc文档,并将其添加到项目的构建输出中。在 Maven 的项目中,jar 是默认的打包方式。

2024-04-29 20:08:35 514 2

原创 SqlSessionFactory

在使用SqlSessionFactory时,需要注意的是,它是一个重量级的对象,一般情况下,应该尽量避免频繁地创建和销毁SqlSessionFactory对象,可以将其作为单例对象在整个应用中共享。SqlSessionFactory是MyBatis框架中的一个重要接口,用于创建SqlSession对象。SqlSessionFactory的主要作用是创建SqlSession对象,它是一个线程安全的对象,一般情况下,一个应用中只需要创建一个SqlSessionFactory对象即可,因为它的创建是比较耗时的。

2024-04-26 17:17:36 550

原创 DataSource简单示例

DataSource接口提供了一种标准的方式来获取与数据库的连接,这样可以避免在每次需要连接数据库时都创建新的连接对象,从而提高了应用程序的性能和可伸缩性。以上代码中,通过@Autowired注解将DataSource注入到MyService中,然后使用getConnection()方法获取一个数据库连接,并在try-with-resources语句块中使用连接执行SQL语句。使用DataSource接口可以大大简化数据库连接的管理和使用,同时也能提高应用程序的性能和可伸缩性。

2024-04-26 16:58:27 332

原创 spring的CacheManager

上述代码中,我们通过@Cacheable注解将getUserById方法标记为需要缓存的方法,并指定缓存名称为"myCache"。当该方法被调用时,如果缓存中已经存在对应的结果,则直接返回缓存中的数据,否则执行方法体并将结果存入缓存中。需要注意的是,@Cacheable注解默认使用方法的参数作为缓存的key,因此在使用时需要保证参数的唯一性。在使用缓存的地方,可以通过@Cacheable注解来标记需要缓存的方法,并指定缓存名称。上述代码中,我们使用了用户对象的id属性作为缓存key,以保证缓存的唯一性。

2024-04-26 16:43:32 763 2

原创 什么是Spring容器中的组件

Spring容器中的组件通过配置文件或注解的方式进行定义和注册,可以通过IoC(控制反转)和AOP(面向切面编程)等特性来实现业务逻辑的解耦和增强。同时,Spring容器中的组件可以通过使用Spring提供的各种工具和框架来简化开发流程,提高开发效率。在Spring容器中,组件指的是被Spring管理的对象,包括JavaBean、Service、Repository等等。总之,Spring容器中的组件是Spring框架的核心概念之一,是实现Spring IoC和AOP特性的基础。

2024-04-25 16:01:01 210 1

原创 什么是http请求

HTTP请求是指客户端向服务器发送的请求消息,以获取服务器资源的过程。HTTP请求消息通常由请求行、请求头和请求正文组成。请求行包含请求方法、请求URL和HTTP协议版本。请求头包含请求的附加信息,例如请求头中的Content-Type表示请求正文的类型。其中,GET方法用于请求指定的资源,POST方法用于向指定的资源提交数据,PUT方法用于更新指定的资源,DELETE方法用于删除指定的资源。HTTP请求是Web应用程序的基础,它允许客户端与服务器之间进行通信和交互,从而实现了Web应用程序的各种功能。

2024-04-25 09:58:40 492

原创 Java程序的生命周期

Java程序的生命周期

2024-04-24 19:55:15 183

原创 JVM中的堆和栈

堆是用来存储对象的内存区域,所有的Java对象都在堆中分配内存。而对于引用类型,栈中存储的是对象的引用,实际的对象数据存储在堆中。在Java程序中,每个方法都会在栈中创建一个栈帧(stack frame),用来存储该方法的局部变量、方法参数和返回值等信息。栈是用来存储方法调用的内存区域,每个线程在运行时都有一个独立的栈,用来存储方法的局部变量、方法参数和返回值等信息。在Java虚拟机(JVM)中,堆(heap)和栈(stack)是两个重要的内存区域,分别用来存储不同类型的数据。

2024-04-22 15:14:52 558

原创 介绍下volatile关键字

这样就能够保证多线程环境下对数组元素的修改是可见的,从而避免了多线程环境下的竞态条件问题。在Java中,使用volatile关键字修饰的变量,其值的修改会立即被其他线程看到,而不是像普通变量那样需要经过缓存或者其他优化操作。volatile是Java中的一个关键字,它的作用是告诉编译器和JVM,该变量是可变的,需要在多线程环境下进行同步,确保多线程之间对该变量的修改都能够及时被其他线程看到。需要注意的是,volatile关键字只能保证可见性和有序性,并不能保证原子性。

2024-04-22 14:28:03 289

原创 什么是CGLIB

CGLIB是一个强大的、高性能的代码生成库,它可以在运行时动态地生成字节码,从而实现对Java类的扩展。CGLIB使用ASM框架来生成字节码,相对于JDK动态代理,它可以代理非接口类型的类,因此它更加强大和灵活。在上面的示例代码中,我们使用CGLIB创建了一个代理对象,并在代理对象的方法执行前后输出了一些信息。总之,CGLIB是Java中一款非常强大的代码生成库,它可以帮助我们在运行时动态地修改类的行为,实现更加灵活和强大的功能。

2024-04-22 11:38:20 219

原创 什么是POJO 类型

POJO是Plain Old Java Object的缩写,意思是简单的Java对象。它是一种特殊的Java类,不依赖于任何框架或技术,也不继承任何特殊的类或实现任何特殊的接口。POJO类只包含了一些属性和对应的getter/setter方法,用于存储和访问数据。POJO类通常被用于数据传输对象(DTO)和业务逻辑对象(BO)中,它们不包含任何业务逻辑,只用于存储和传输数据。使用POJO类可以使代码更加简洁、易于维护和测试。

2024-04-22 10:39:31 537

原创 什么是JDBC

JDBC(Java Database Connectivity)是Java语言中访问数据库的标准API,它提供了一组用于访问各种关系型数据库(如Oracle、MySQL、PostgreSQL等)的接口和类。通过JDBC,Java程序可以与数据库进行交互,实现数据的存储、检索、更新等操作。它通过驱动程序(Driver)来实现数据库的连接,不同的数据库需要使用不同的驱动程序。JDBC提供了一套标准的接口,使得Java程序员可以编写一套通用的代码,而不必考虑底层数据库的实现细节。

2024-04-22 09:30:15 398

原创 什么是 ORM(对象关系映射)

ORM框架可以大大减少开发人员的工作量,提高开发效率,同时还可以避免一些常见的数据库编程错误,如SQL注入等。常见的Java ORM框架有Hibernate、MyBatis、Spring Data JPA等。ORM(对象关系映射)是一种编程技术,它将面向对象的编程语言(如Java)中的对象与关系型数据库中的表之间建立映射关系,从而实现对象数据的持久化存储和操作。ORM框架可以自动将Java对象映射到数据库表中的行,同时还可以自动将数据库中的行映射为Java对象,从而实现了对象与数据库之间的无缝衔接。

2024-04-22 09:28:32 249

原创 JDBC的statement

JDBC的statement

2024-04-22 09:26:59 278

原创 Mybatis中的<collection>

Mybatis中的

2024-04-16 13:53:50 466

原创 PostgreSQL的 UNION

PostgreSQL的 UNION

2024-04-07 16:57:05 867

原创 MyBatis 的 `<foreach>` 标签

MyBatis 的 `` 标签

2024-04-07 16:40:06 563

原创 PostgreSQL的|| 和::

PostgreSQL的|| 和::

2024-04-07 16:02:23 733 1

原创 PostgreSQL中的uuid

PostgreSQL中的uuid

2024-04-07 15:58:06 885

原创 ThreadLocal

ThreadLocal

2024-02-06 10:07:25 305

原创 SpringBoot整合FreeMarker

SpringBoot整合FreeMarker

2024-01-22 11:51:31 491

原创 .concat()方法

.concat()方法

2024-01-09 14:47:30 646

原创 @WebFilter注解

@WebFilter注解

2024-01-08 16:54:11 1381

原创 String.join()方法

String.join()方法

2024-01-04 10:42:54 1203

转载 SpringBoot多模块(module)项目搭建

SpringBoot多模块(module)项目搭建

2024-01-04 10:25:58 60

原创 String.format()方法

String.format()方法

2024-01-04 09:47:42 388

原创 创建一个starter项目

创建一个starter项目

2024-01-04 09:12:15 418

空空如也

空空如也

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

TA关注的人

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