- 博客(56)
- 收藏
- 关注
原创 Spring中常用的ApplicationContext 配置加载方式
2.FileSystemXmlApplicationContext:通过绝对路径加载Bean的xml配置文件。1.ClassPathXmlApplicationContext:通过相对路径加载Bean的xml配置文件。ps:以上两个都是ApplicationContext的实现类。
2025-07-19 15:58:57
93
原创 Spring中BeanFactory和ApplicationContext 有什么区别
BeanFactory是Spring的最底层接口,可以理解为Bean的工厂,包含Bean的定义,管理Bean的加载和实例化,控制Bean的生命周期等。实现BeanFactory的容器的特点是每次获取对象时才会创建对象。
2025-07-19 15:58:27
167
原创 Spring中Bean的作用域
global-session:全局session(用于分布式web开发)singleton:单例(默认)ps:通过@Scope注解修改。prototype:多例。request:一次请求。session:一次会话。
2025-07-19 15:56:47
80
原创 Spring中Bean的生命周期
1.Bean的实例化。2.Bean的属性赋值。3.调用初始化方法。4.使用Bean的过程。5.当容器关闭时,调用销毁方法。
2025-07-19 15:56:05
192
原创 Spring框架的作用
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。IOC是控制反转,就是将原本程序中手动创建对象的控制权,交由Spring框架来管理。简单来说,就是创建对象的控制权被反转到了Spring框架。AOP是面向切面编程,是OOP的一个衍生。AOP将重复的方法横向抽取出来,降低代码的耦合度。如日志切面。AOP的核心概念:1.切面:定义的切面类。2.连接点:需要增强的方法或接口。3.切点:一组连接点,通过表达式定义。4.增强:具体的方法和操作。5.织入:连接增强的过程。6.目标对
2025-07-19 15:54:50
114
原创 String、StringBuffer、StringBuilder的区别
故可以得出,性能StringBuilder > StringBuffer > String。String:储存值的字符数组是final修饰的,值不可变,效率低,浪费内存。StringBuffer:线程安全,公开方法有synchronized修饰。StringBuilder:线程不安全,性能大于 StringBuffer。
2025-07-19 14:30:09
112
原创 Swagger常用注解
ApiModelProperty:实体类属性的说明,用于实体类属性上。@ApiOperation:请求方法的说明,用于请求的方法上。@Api:请求类的说明,用于controller类上。@ApiModel:实体类的说明,用于实体类上。
2025-07-19 14:25:32
142
原创 什么是幂等性
在支付操作的时候,为了防止网络异常原因,用户多次提交,造成的多次重复扣款,此时就应该对接口进行幂等性设计。就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。如下单和支付是一次操作,则需要另外设计门票ticketId来确保订单不会被重复支付。在编程中一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。3.若未支付,则支付扣款并保存流水。2.如果已经支付,则直接返回结果。1.查询订单支付状态。
2025-07-19 14:23:35
200
原创 Mybatis一级缓存和二级缓存的区别
一级缓存是会话级的,缓存本次会话的查询数据,本次会话中执行增删改查会清空缓存。二级缓存是Mapper级的,缓存查询数据到Mapper对应的缓存区域,相同namespace的Mapper可以共同缓存。其他Mapper也可以通过标签来引用二级缓存。
2025-07-18 16:07:32
221
原创 JWT是什么
JWT是Json Web Token的缩写,它是基于 RFC 7519 标准定义的一种可以安全传输的的JSON对象,由于使用了数字签名,所以是可信任和安全的。
2025-07-18 15:52:58
189
原创 synchronized、volatile的作用和区别
1.线程的可见性:当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。volatile:主要有以下两个作用。synchronized:同步锁。2.顺序一致性:禁止指令重排序。
2025-07-17 10:31:43
109
原创 线程同步的方法
2.使用Lock接口下的实现类,更加灵活。可以实现trylock,尝试获取锁或设置锁的时间。1.使用synchronized关键字,可以修饰方法,也可以修饰代码块。
2025-07-17 10:31:10
336
原创 什么是死锁,如何产生,如何解决
(2)注意加锁时限(线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁)(1)互斥条件:进程对所分配到的资源具有排他性,即一个资源只能被一个进程占用,直到被该进程释放。(1)一个可行的做法是释放所有锁,回退,并且等待一段随机的时间后重试。(4)循环等待条件:当发生死锁时,所等待的进程必定会形成一个环路(死循环),造成永久阻塞。(2)请求和保持条件:一个进程因请求被占用资源而发生阻塞时,对已获得的资源保持不释放。(1)注意加锁顺序(线程按照一定的顺序加锁)
2025-07-17 10:30:40
396
原创 线程创建的几种方式
2.实现Runnable接口,实例化后当作构造参数传给Thread对象。1.继承Thread类,重写run方法。3.通过线程池获取线程。
2025-07-17 10:27:15
231
原创 线程的生命周期
(1)等待阻塞:线程调用wait方法,进入等待池,只能等待notify或notifyAll方法唤醒线程。(3)其他阻塞:现成调用sleep方法或join方法或发出了IO请求时,线程会进入阻塞状态。3.运行:就绪状态的线程调用run方法后就进入运行状态,获取cpu开始执行程序代码。(2)同步阻塞:线程获取对象同步锁时,锁被别的线程占用,JVM将线程放进锁池。2.就绪:调用start方法之后就处于就绪状态,等待获取cpu使用权。ps:join方法 => 调用的线程 强占cpu资源,直到执行完毕。
2025-07-17 10:26:50
388
原创 进程和线程的区别
1.进程是执行中的一段程序,而一个进程中执行的每个任务即为一个线程。3.一个线程只属于一个进程,但是一个进程可以包含多个线程。2.一个程序至少有一个进程,一个进程至少有一个线程。进程:操作系统进行资源分配和调度的一个独立单位。线程:cpu调度的最小(基本)单位。
2025-07-17 10:24:42
373
原创 Java集合框架
LinkedHashSet:底层数据结构是链表和哈希表,元素有序且唯一,线程不安全,可以存null。HashSet:底层数据结构是哈希表,元素无序且唯一,线程不安全,效率高,可以存null。HashMap:底层数据结构是哈希表,可以存入null键和null值,线程不安全,效率高。LinkedList:底层数据结构是链表,查询慢,增删快,线程不安全,效率高。ArrayList:底层数据结构是数组,查询快,增删慢,线程不安全,效率高。Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低。
2025-07-16 13:34:26
220
原创 Java方法传参是值传递还是引用传递
当传的是基本类型时,传的是值的拷贝,对拷贝变量的修改不影响原变量;当传的是引用类型时,传的是引用地址的拷贝,但是拷贝的地址和真实地址指向的都是同一个真实数据,因此可以修改原变量中的值;当传的是String类型时,虽然拷贝的也是引用地址,指向的是同一个数据,但是String的值不能被修改,因此无法修改原变量中的值。由此可见,实际上java都是值传递,虽然官方也无明确说明。
2025-07-15 14:43:26
199
原创 Java开发中的术语缩写(持续更新)
DTO:数据传输对象(Data Transfer Object)DAO:数据访问对象(Data Access Object)有时候看到一些术语缩写,就想知道是到底什么意思…虽然不理解也没什么影响,就纯好奇。
2025-07-14 17:33:41
117
原创 Token的作用和生成方式
在 Java 开发中,尤其是在 Web 应用和 API 开发领域,Token(令牌)扮演着至关重要的角色,主要用于解决身份认证和授权问题。其核心目标是实现无状态、安全的交互。
2025-07-14 17:27:02
870
原创 dependencies和dependencyManagement的区别
dependencies和dependencyManagement的区别
2024-01-25 15:23:50
428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅