自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 “Token“(令牌)和“JWT“(JSON Web Token)的区别

需要注意的是,JWT是一种特定的令牌格式,属于令牌的一种实现方式。其他类型的令牌(如访问令牌、刷新令牌)可以采用不同的格式和实现方式,不一定符合JWT的结构和规范。"Token"(令牌)和"JWT"(JSON Web Token)是在身份验证和授权过程中经常提到的两个概念,它们之间存在一些区别。

2023-07-07 08:44:26 826

原创 Authentication接口

它提供了一组方法和协议,用于验证用户提供的身份凭证(例如用户名和密码、API密钥、令牌等)是否有效,并确定用户是否具有访问系统或资源的权限。通常,Authentication接口与用户身份验证系统(如数据库、身份提供者或第三方服务)进行交互,以验证用户的凭证。单点登录(SSO):这是一种身份验证机制,允许用户使用一组凭证(如用户名和密码)登录到多个关联应用程序或系统中,而不需要在每个应用程序中单独进行身份验证。Authentication接口将验证令牌的有效性和合法性,以确定用户的身份和权限。

2023-07-06 08:40:31 415

原创 # Spring AOP

注意:AOP并不是Spring原创的技术,也不是Spring的独家技术,而是源自AspectJ,只是Spring很好的支持了AOP。AOP技术主要解决了“横切关注”的相关问题,也就是“若干个不同的方法都需要执行相同的任务”的问题!- 在Spring Security框架,使用AOP检查权限。-- Spring Boot支持AOP的依赖项 -->- 在Spring JDBC中,使用AOP实现了事务管理。- 在Spring MVC框架中,使用AOP处理了异常。* 统计所有Service方法执行耗时的切面类。

2023-07-05 08:48:01 686

原创 ORM(对象关系映射)框架

ORM框架通过将数据库表映射为对象、将表的行映射为对象的属性,以及提供一组操作数据库的方法,简化了数据库操作的过程。属性和列之间的映射:ORM框架将对象的属性与数据库表的列进行映射,使开发人员可以通过对象属性的访问方式来读取和修改数据库表中的数据。对象和表之间的映射:ORM框架可以自动将对象与数据库表进行映射,使开发人员可以通过操作对象来操作数据库表。数据库迁移:一些ORM框架还提供了数据库迁移工具,用于管理数据库模式的变更和升级。

2023-06-30 08:42:30 528

原创 String[] t 和 String t[]

更符合 Java 编程风格和惯例,因此被广泛推荐使用。是一种更早期版本的允许的语法。它们在语义上是等效的,表示声明一个名为。都表示声明一个字符串数组的语法,但它们的写法语义上存在一些区别。是合法的语法,但在现代的 Java 编程中,推荐使用。这样可以增强代码的可读性、一致性和清晰性。是一个字符串变量,而不是一个字符串数组。的形式可以保持一致性。的语法可能导致一些误解,让人误以为。是首选的数组声明写法,而。一致性:在多个声明时,使用。,这样的写法更加一致和统一。是一个字符串数组,而。在可读性上稍显模糊。

2023-06-28 13:50:15 259

原创 新增一个全局处理异常

2.注册全局异常处理器: 在应用程序的配置中,将全局异常处理器注册到适当的位置,以确保它能够捕获和处理应用程序中的异常。处理异常: 在应用程序的各个地方,当发生异常时,将异常抛出或处理,并由全局异常处理器捕获。全局异常处理器将执行定义的异常处理逻辑,并返回适当的响应。该处理器将统一处理应用程序中的异常,并根据需要进行适当的处理或返回适当的响应。通过以上三个步骤,可以新增一个全局处理异常的机制,实现对应用程序中的异常进行统一处理,并返回适当的响应。将异常抛出,然后由全局异常处理器捕获并处理。

2023-06-19 08:45:16 939

原创 依赖注入(Dependency Injection)

构造方法注入可以保证依赖对象的不变性和可见性,属性注入和字段注入提供了更简洁的语法和代码风格。在目标对象的构造方法中声明依赖对象的参数,Spring容器在创建目标对象时会自动解析并提供相应的依赖对象。在Spring框架中,依赖注入(Dependency Injection)是一种通过容器自动将依赖对象注入到目标对象中的机制。需要注意的是,无论是构造方法注入、属性注入还是字段注入,都需要将依赖对象所在的类标注为Spring容器管理的组件,例如使用。类型的参数,Spring容器会自动调用该方法并注入依赖对象。

2023-06-17 12:45:29 1101

原创 Axios和Spring MVC[前端和后端的请求和响应处理]

2.后端(Spring MVC)接收前端(Axios)发送的JSON字符串并转换为对象:使@RequestBody注解:在Spring MVC的Controller方法参数上使用@RequestBody注解,将接收到的JSON字符串转换为Java对象。1.前端(Axios)向后端(Spring MVC)发送对象:对象转换为JSON字符串:前端可以使用JSON.stringify()方法将对象转换为JSON字符串,然后将其作为请求体发送给后端。对象,并在方法中对接收到的对象进行处理。

2023-06-16 10:30:39 2747

原创 Java虚拟机(JVM)调优

可以使用不同的垃圾回收器(如Serial、Parallel、CMS、G1等)以及相关的参数来优化垃圾回收。堆内存设置:通过调整堆内存的大小来优化JVM性能。可以通过调整JIT编译器的相关参数,如编译阈值、内联限制等,来优化JIT编译的性能和效果。以上是一些常见的JVM调优技巧,具体的调优策略需要结合具体的应用程序和硬件环境进行调整。通过合理地配置线程池的大小和参数,可以控制并发线程的数量,避免线程过多导致的性能下降和资源浪费。类加载调优:JVM的类加载机制对应用程序的启动时间和内存占用有一定的影响。

2023-06-15 08:53:45 710

原创 Java中的反射和映射区别

Java中的反射机制允许程序在运行时动态地获取一个类的信息,包括类名、构造函数、成员变量、方法等,并且可以通过反射机制调用这些方法或访问这些成员变量。在Java中,映射通常指的是Java对象与数据库表之间的映射,也就是对象关系映射(ORM)。ORM技术可以将Java对象与数据库表中的记录进行映射,使得Java程序可以通过面向对象的方式来操作数据库,而不需要编写复杂的SQL语句。反射主要用于运行时动态获取和操作类的信息,而映射则主要用于Java对象与数据库表之间的映射。

2023-06-14 08:18:33 1405

原创 对象锁(Object lock)

在Java中,对象锁可以通过synchronized关键字来实现。在并发编程中,多个线程可能同时访问共享对象,如果不采取任何措施来保护对象的一致性,可能会导致数据竞争和不确定的结果。对象锁通过在对象上设置锁,限制同时只有一个线程可以获取该锁,从而实现对对象的互斥访问。当一个线程获取到对象的锁之后,其他线程就需要等待,直到持有锁的线程释放锁为止。总结来说,对象锁是一种用于保护共享对象的同步机制,通过限制同时访问对象的线程数量来确保线程安全。提供了更灵活的锁定机制,允许更复杂的锁定和释放操作。

2023-06-13 17:44:26 1403

原创 三次握手和四次挥手

三次握手(Three-Way Handshake): 在客户端和服务器之间建立一个TCP连接时,使用三次握手来确认双方的通信参数。四次挥手(Four-Way Handshake): 当客户端或服务器决定终止TCP连接时,需要进行四次挥手来关闭连接。三次握手和四次挥手过程的目的是确保数据能够可靠地传输,并在需要时建立和终止连接。在完成三次握手后,双方就建立了可靠的TCP连接,可以开始进行数据的传输。三次握手和四次挥手是TCP/IP协议中用于建立和终止网络连接的过程。

2023-06-12 08:55:40 1066

原创 SPRING常用注解及其作用

需要注意的是,@Controller注解是在Spring MVC框架中使用的,用于标识控制器层组件。在使用Spring MVC框架时,通过@Controller注解标注的类会被Spring MVC容器管理,用于接受和处理用户请求。总结而言,@Controller注解是Spring框架中用于标识控制器层组件的注解,在Spring MVC框架中使用。通过该注解,可以将类标识为控制器层组件,并交由Spring MVC容器管理,实现用户请求的处理和结果返回。服务层组件主要用于封装业务逻辑,提供业务功能的实现。

2023-06-09 08:43:47 1000

原创 线程池 笔记

System.out.println(t.getName()+":正在执行一个任务...");System.out.println(t.getName()+":执行完毕....");//shutdown()后,线程池处于关闭状态,此时不再接收新任务,等待现有任务都执行完毕后关闭。System.out.println("交给线程池一个任务");线程池会中断内部线程。System.out.println("线程池关闭了");//创建任务(Runnable)

2023-06-08 09:29:50 781

原创 数据库 笔记

一次仅查询30条记录,避免因为数据庞大导致系统过度的资源开销,已经更慢的传输速度。例如:学生与班级表,学生表中有一个字段class_id保存着class表主键id字段的值.此时class_id字段就是外键字段.因此班级表与学生表存在一对多的关系,即:班级表的一条记录可以对应学生表的多条记录.例如:学生与班级表,学生表中有一个字段class_id保存着class表主键id字段的值.此时class_id字段就是外键字段.因此班级表与学生表存在一对多的关系,即:班级表的一条记录可以对应学生表的多条记录.

2023-06-07 08:45:09 564

原创 JAVA反射机制

原因: Class的getMethod()和getMethods()仅能获取该类对象所表示的类的公开方法(包含从超类继承的) */3.JVM加载一个类时会读取该类的.class文件然后将其载入到JVM内部,与此同时会实例化一个Class的实例,用该实例记录被加载的类的信息(类名,方法,构造器等)getDeclaredMethod用来获取Class表示的类的自己定义的方法(包含私有方法) *///获取int的类对象(基本类型只有这一种方式获取类对象)

2023-06-05 08:24:59 636

原创 Map 笔记

System.out.println("是否包含value[99]:"+cv);System.out.println("是否包含value[55]:"+cv);System.out.println("是否包含key[语文]:"+ck);System.out.println("是否包含key[体育]:"+ck);Map.Entry它的每一个实例用于表示Map中的一组键值对。System.out.println("英语:"+value);System.out.println("体育:"+value);

2023-06-03 10:47:38 499

原创 JDBC java数据库连接

System.out.println("登录成功,欢迎你:"+nickname);System.out.println("登录失败,用户名或密码不正确");* PreparedStatement 用来执行预编译SQL语句的语句对象。while(resultSet.next()){//结果集向下移动一行,并判断改行是否存在。//执行该sql前要指明预编译SQL中"?//创建预编译SQL语句执行时将预编译SQL发送给数据库要求其理解语义。二.预编译SQL语句的写法,将原本需要拼接的"值"先用"?

2023-06-02 08:39:01 695

原创 # JAVA常见异常

如果线程t1调用Thread.sleep(1000)处于阻塞的过程中,其他线程调用了t1线程的inerrupt()方法,那么t1调用的sleep()方法就会立即抛出中断异常InterruptedException并停止阻塞.中断异常.这个异常通常在一个线程调用了会产生阻塞的方法处于阻塞的过程中,此时该线程的interrupt()方法被调用.那么阻塞方法会立即抛出中断异常并停止线程的阻塞使其继续运行.该异常通常出现在String对应的方法中,当我们指定的下标小于0或者大于等于字符串的长度时会抛出该异常。

2023-06-01 08:35:15 708

原创 HTTP协议 超文本传输协议 由万维网制定(w3c)

消息头是浏览器可以给服务端发送的一些附加信息,有的用来说明浏览器自身内容,有的用来告知服务端交互细节,有的告知服务端消息正文详情等。HTTP要求浏览器与服务端的传输层协议必须是可靠的传输,因此是使用TCP协议作为传输层协议的。消息正文是2进制数据,通常是用户上传的信息,比如:在页面输入的注册信息,上传的附件等内容。Content-Type是用来告知浏览器响应正文中的内容是什么类型的数据(图片,页面等等)响应是服务端发送给客户端的内容。响应头与请求中的消息头格式一致,表示的是服务端发送给客户端的附加信息。

2023-05-31 08:41:05 490

原创 String、StringBuffer和StringBuilder的异同

1.StringBuffer:是线程安全的可变字符序列,一个类似于String类的字符串缓冲区,两者本质上是一样的,但StringBuffer比String效率快很多。int lastIndexOf(String str, int fromIndex):返回从指定的索引后,指定子字符串在当前字符串中最后一次出现处的索引。int indexOf(String str, int fromIndex):返回从指定的索引后,指定子字符串在当前字符串中第一次出现处的索引。

2023-05-19 08:43:18 101

原创 HTML详细

常见的值有_blank (在新窗口中打开)和_self(在当前窗口中打开),如果没有设置target属性,则默认在当前窗口中打开链接。页面内部跳转:在目的地元素里面添加id属性, 然后在超链接 href="#id",这样就能跳转到指定元素的位置。• HTML由许多元素组成,这些元素可以指定不同的页面内容,如 文本、图像、音频、视频等。• href 属性指定目标页面的 URL(类似图片的src属性)• 作用:负责搭建页面的结构和准备内容(盖房子 毛坯房)3. 资源在页面的下级目录: 文件夹名/图片名。

2023-05-18 16:40:49 71

原创 Springboot整合mybatis[详细]

Requestmapping注解(将类中所有方法映射到该一级路径)标注一级路径,在类中添加业务方法@Requestmapping注解(将该方法方法映射到该二级路径),在类中使用@Autowired注解自动注入,获取一个Mapper接口的类对象。6. 在资源目录下创建mappers目录,在其下创建Mapper.xml文件,并在项目配置文件中配置该目录下所有文件的路径,由xml文件中的mapper标签匹配到mapper接口并由id匹配到对应的方法,在xml文件中编写预编译sql语句.

2023-05-16 16:39:18 549 1

空空如也

空空如也

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

TA关注的人

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