摘要:一、场景 假设现在某电商平台天狗有这么个需求,在用户下完单之后,发送短信给用户。 public void order(){ // 下单成功 System.out.println("下单成功..."); // 发送短信 sendSms(); } 目前来看没什么问题,假设一个月后,天狗平台业务有调整,需
阅读全文
摘要:本文转载自:透彻的掌握 Spring 中@transactional 的使用 事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务
阅读全文
摘要:本文转载自:https://www.cnblogs.com/lx-1024/p/8033765.html 情况一: 一个方法只被一个Aspect类拦截 当一个方法只被一个Aspect拦截时,这个Aspect中的不同advice是按照怎样的顺序进行执行的呢?请看: 添加 PointCut类 该poin
阅读全文
摘要:需求背景 最近我们在做一个开放平台,将公司的能力接口通过此平台暴露出去,给外部公司使用,然后收取费用。那么在对接外部公司的时候,就会涉及到接口参数签名以及验证时间戳。如果每个接口都手动去校验,毫无疑问非常的繁琐,因此优化了一下,通过filter以及interceptor来实现公共校验。 代码 1、过
阅读全文
摘要:今天遇到个神奇的问题,前端上传图片到文件服务器上,然后将图片地址传到后台,后台保存路径到数据库中,但是展示的时候路径一直有问题。 比如前端入参 ...../953983fd-576b-44fb-ae11-57b5e78ced73?q-sign-algorithm=sha1&q-ak=AKIDmNks
阅读全文
摘要:抽象类是无法实例化的,因此无法使用@Service等这种注解直接将抽象类交给ioc容器管理,但是项目中往往需要有很多子类公用抽象父类的模板方法,那么怎么实现呢? 错误演示 1、抽象类 @Component public abstract class BaseService { @Autowired
阅读全文
摘要:本文转载自:Spring解决循环依赖的方法 所谓Spring的循环依赖,指的是这样一种场景: 当我们注入一个对象A时,需要注入对象A中标记了某些注解的属性,这些属性也就是对象A的依赖,把对象A中的依赖都初始化完成,对象A才算是创建成功。那么,如果对象A中有个属性是对象B,而且对象B中有个属性是对象A
阅读全文
摘要:前言 Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,
阅读全文
摘要:MVC设计模式 有过一定开发经验的人肯定都知道这个模式,先简单介绍下这种模式,然后再去讨论为啥要这么设计: 传统的web应用中应该主要包括这些组件,不同组件负责不同的模块。 数据实体:POJO 数据层:DAO 业务层:Service 控制层:Servlet 表示层(页面层):JSP页面或HTML页面
阅读全文
摘要:访问数据库基本是所有java web项目必备的,不论是oracle、mysql,或者是nosql,肯定需要和数据库打交道。一开始学java的时候,肯定是以jdbc为基础,如下: spring对dao层提供了不同的模板类,主要如下; 主要机制如下: 数据源 在spring中,数据连接是通过数据源获得的
阅读全文
摘要:AOP概述 aop其实就是面向切面编程,举个例子,比如项目中有n个方法是对外提供http服务的,那么如果我需要对这些http服务进行响应时间的监控,按照传统的方式就是每个方法中添加相应的逻辑,但是这些逻辑是重复的,我无非是需要记录请求的时间以及响应时间,另外可能需要加上请求入参以及响应出参。这时候就
阅读全文
摘要:之前都是说了怎么配置bean以及用法之类的,这篇博文来介绍下spring容器内幕。 内部容器工作机制 Spring中AbstractApplicationContext抽象类的refresh()方法是用来刷新Spring的应用上下文的。 直接看图解吧: 使用外部属性文件 项目中经常有很多配置,例如数
阅读全文
摘要:bean的生命周期 1、实例化Bean 对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。 对于ApplicationContext容器,当容器启动结束后,便实例化所有的be
阅读全文
摘要:spring对于java程序员来说,重要性不可言喻,可以想象下如果没有他,我们要多做多少工作,下面一个系列来介绍下spring(5.x版本)。 spring模块 IOC概念 spring中最重要的两个部分就是ioc和aop,先来介绍ioc。ioc也叫控制反转,其实说白了,就是容器帮你去创建对象(前提
阅读全文
摘要:上一篇整合了spring+mybatis,基本上还不是web工程,接下来接入springMVC,Let's go! 一、工程转换成Web工程 首先右击项目-->properties-->project facets,观察是否出现下图配置 没出现也不要慌张,先把Dynamic Web Module√去
阅读全文
摘要:环境搭建是最基础的,但是发现平时很多时候大家都是ctrl c+ctrl v,这样对于很多细节完全不清楚,来,一起深入了解下 一、准备工作 首先得准备好maven、mysql啥的,这些略。。。 并且mysql中新建表,脚本如下: db脚本: dml脚本: 二、创建maven项目 有关maven基础有疑
阅读全文