程序猿洞晓
Spring事务失效的这10种坑,看看你踩中没!!! Spring事务失效的这10种坑,看看你踩中没!!!
对于从事java开发工作的同学来说,spring的事务肯定再熟悉不过了,spring事务大多数情况下,可以满足我们的业务需求,但是一不小心就会踩坑的哦。
2022-10-10
面向切面思想实现项目全局异常处理(简单切面+Spring提供的封装) 面向切面思想实现项目全局异常处理(简单切面+Spring提供的封装)
以前写项目的时候所谓,异常直接在各个层里面捕捉处理后向外返回错误信息,但是实际上有些运行时异常很容易被忽略,这样就会导致这些异常出现后会直接返回给调用方。当时的解决方案就是在Controller层的每个方法加try-catch块,捕捉所有的异常并处理后返回给调用方,但是这样处理起来比较麻烦,因为每个方法上都要加……
2018-11-02
Spring注解式注入依赖bean优先级 Spring注解式注入依赖bean优先级
使用注解的方式注入ban实例,在两年前的开发中,还经常看到@Resource注解,这个注解是基于JSR250标准的,现在基本很少看到使用了,取而代之的是@Autowired注解,也是官方推荐的。随着spring boot的出现,很多开发小伙伴喜欢通过config配置类加载一些bean,在加载这些bean会依赖到其他的一些bean实例……
2018-08-07
从源码的角度分析@Lazy和@Scope对IOC容器初始化影响以及IOC的总结 从源码的角度分析@Lazy和@Scope对IOC容器初始化影响以及IOC的总结
在之前的文章中说过lazy、scope对spring ioc容器的初始化影响(Spring中Lazy、Scope注解对IOC容器Bean初始化的影响分析),但是没有具体深入的说,而是通过表面数据判断。另外就是之前也写过spring ioc容
2018-08-03
Spring AOP之aspectj切面增强过程理解 Spring AOP之aspectj切面增强过程理解
aspectj下主要有@Before、@After、@AfterReturning、@AfterThrowing、@Around几个通知的方式。在实际的开发过程中也是经常要用到的,之前只能停留在会用的层面上,为了更深入的了解这些方法执行的时机和原理,只能学习源码,这里分享出来,希望和大家共同学习进步。
2018-07-22
Spring IOC容器初始化基础过程源码了解 Spring IOC容器初始化基础过程源码了解
Spring IOC初始化有很多种方式,如xml方式、注解方式(也分很多不同的方式)、FactoryBean方式等等,这个在之前的博客中有写过(原文:[Spring IOC初始化bean对象创建的N种实现方式理解])。这里就其中的一种方式来理解一下整个创建bean的基本过程。
2018-07-16
Spring IOC初始化bean对象创建的N种实现方式理解 Spring IOC初始化bean对象创建的N种实现方式理解
Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下。
2018-07-10
Spring中Lazy、Scope注解对IOC容器Bean初始化的影响分析 Spring中Lazy、Scope注解对IOC容器Bean初始化的影响分析
面试的时候总是会遇到各种Spring主要功能点的问题,因为Spring对于java来说太重要。如Spring的IOC容器、动态代理、事务、切面编程等等。后期再更新文章的时候我们会慢慢讨论这些东西,这里现在我们先看其中一个功能点IOC容器,其实也不算是说IOC容器,主要的重点是放在Spring注解对IOC容器初始化的影响,也是在面试中最常说漏的。
2018-06-27
Spring AOP+反射实现自定义动态配置校验规则,让校验规则飞起来 Spring AOP+反射实现自定义动态配置校验规则,让校验规则飞起来
之前项目都是使用hibernate-validator来校验参数,但是实际上会出现一些小问题,就是校验规则都是通过注解的方式来完成,这样如果项目上线了,这个参数校验规则就没办法修改,如果出现校验规则问题,就必须修改后重新紧急上线(之前因为手机号码格式校验就出现过这个问题,因为新的号段不支持)。为了适应动态配置校验规则,在新起的项目我们就不再使用……
2018-06-22
Spring注解@Async和@Transactional失效问题究竟是什么原因,强势解释一波 Spring注解@Async和@Transactional失效问题究竟是什么原因,强势解释一波
Spring的异步执行注解@Async,在调用这个方法的时候发现,不对劲,耗时的逻辑我已经加入到异步取做了,怎么接口请求的响应这么慢,赶紧看日志,懵X,加了异步注解,却没有异步执行。在项目中用到@Transactional注解实现事务是必须滴,但是有时候我们会发现在方法上加了@Transactional注解却出现灵异事件,在方法内出现异常,数据……
2018-06-17
Spring AOP 动态代理 CGLIB、JDK 的基本原理 Spring AOP 动态代理 CGLIB、JDK 的基本原理
AOP(Aspect Orient Programming),我们一般称为面向方面(切面)编程,作为面向对象的一种补充,用于处理系统中分布于各个模块的横切关注点,比如事务管理、日志、缓存等等。AOP 实现的关键在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态代理和动态代理,静态代理的代表为 AspectJ;而动态代理则以 Spring AOP 为代表。本文会分别对 AspectJ 和……
2018-06-15
项目发布成功、失败,Java项目来实现邮件通知相关人员,实时反馈提醒信息 项目发布成功、失败,Java项目来实现邮件通知相关人员,实时反馈提醒信息
在开发的流程中必须涉及的项目的部署发布,这个过程也肯定会有成功、失败,作为开发能够实时的得到反馈是很有必要的,在不同的公司里采用的提醒方式不同。在说明下面的方案前,需要首先说明一下基本应用的场景。纯后台应用,现在项目基本都是前后端分离,因为一个前端服务可能会对应多个后端服务的支持,随着整个开发大环境的完善和技术的成熟,之前那种前后端耦合……
2018-05-30