![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 72
小咸鱼的技术窝
独立全栈开发工程师一枚,熟读JDK、SSM、SpringCloud生态源码。
个人产品:www.xxyfy.cn
微信公众号:小咸鱼的技术窝
个人微信:zh114418
展开
-
手把手debug自动装配源码、顺带弄懂了@Import等相关的源码(全文3w字、超详细)
现在是8月15号北京时间网上9点33,怎么说呢原创 2021-09-02 14:36:13 · 461 阅读 · 0 评论 -
全面解读spring注解事务失效场景,伪代码+图文深度解析spring源码运行过程
说起spring事务大家肯定都不陌生,在springboot项目中我们只需在需要事务控制的方法上面添加@Transactional注解即可,但是在springboot项目中使用事务,如下俩个注解不加也行。@EnableAspectJAutoProxy:开启aop自动代理 默认为false(不加也行)@EnableTransactionManagement:开启spring事务(@SpringBootApplication中已经为我们开启过了spring事务,不加也行)spring事务:支持配原创 2021-04-17 19:49:06 · 838 阅读 · 0 评论 -
spring中的Assert工具类的使用(如何写出优雅的代码)
Assert常用于数据合法性校验,不通过就报异常,常规写法if (text != null && "".equals(text)) { throw new IllegalArgumentException("字符不能为null,且至少包含一个非空格字符"); }用Assert工具类就可以这样替代Assert.hasText(text,"字符不能为null,且至少包含一个非空格字符"); //String常用Assert介绍public c原创 2021-01-29 16:19:30 · 416 阅读 · 0 评论 -
Spring中提供的扩展点之ApplicationContextAware接口的在项目中的使用
前言:在springBoot项目中,我们平常的工具类一般都是基于jdk层面来写的,但是如果我们想写一个基于web层面的工具类呢?各种属性都是在容器里,request…里面,难不成这个web层面的工具类也是靠注入各种bean来实现的嘛?显然不是的,这样的代码太多就不是工具类咯,而此时ApplicationContextAware的作用就体现出来啦本文概览ApplicationContextAware 概括项目实战项目中使用springBoot单元测试测试结果ApplicationContextAwar.原创 2021-01-29 14:59:07 · 412 阅读 · 0 评论 -
spring扩展点之InitializingBean接口实战
前言:InitializingBean接口让我们可以干涉bean的初始化过程,算是spring给我们提供的一个扩展点咯,凡是继承InitializingBean接口的类,在创建bean的时候都会执行afterPropertiesSet方法,在这个方法里面我们可以写一些自己的业务逻辑。文章概括实战场景之把配置类java代码化测试答疑实战场景之把配置类java代码化把配置类java代码化是什么鬼哦,就是把application.properties或者application.yml中的配置属性通过In.原创 2021-01-27 20:26:08 · 321 阅读 · 0 评论 -
spring注解之@Value详解
前言:为了把程序中用到零零散散的配置信息变得容易维护,我们会把这些信息写进配置文件,那么怎么从配置文件读出这些信息呢?@Value帮你解决@Value注解作用该注解的作用是将我们配置文件的属性通过前缀匹配的方式读出来,有@Value(“${}”)和@Value(“#{}”)两种方式。使用在springBoot项目中,application.yml中配置了如下信息/** * @author zzh * @class */@Component@Datapublic class par.原创 2021-01-27 20:25:02 · 2438 阅读 · 0 评论 -
注解版的springaop实操讲解(赋完整测试代码)
aop是个很强的东西,我们可以用来实现日志收集,鉴权,敏感词过滤等等功能。在说注解版的springaop使用之前,一些专业术语我用大白话来复述一遍,希望大家不要嫌弃。切面:切入点+通知连接点:目标对象中被增强的某个方法切点:连接点的集合目标对象:被增强的对象织入:把代理逻辑加入到目标对象的过程好了先来定义一个切面写法1: @Component@Aspectpublic class aspect1 { @Pointcut("execution(* com.zzh.service.原创 2020-09-08 19:04:23 · 370 阅读 · 0 评论