AOP(Aspect Oriented Programming),即面向切面编程,是Spring框架的大杀器之一. 首先,我声明下,我不是来系统介绍什么是AOP,更不是照本宣科讲解什么是连接点.切面.通知和切入点这些让人头皮发麻的概念. 今天就来说说AOP的一些应用场景以及如何通过和其他特性的结合提升自己的灵活性. AOP应用举例 AOP的一大好处就是解耦.通过切面,我们可以将那些反复出现的代码抽取出来,放在一个地方统一处理. 同时,抽出来的代码很多是与业务无关的,这样可以方便开发者更加专注自己…
本文介绍spring boot集成swagger,自定义注解,拦截器,xss过滤,异步调用,定时任务案例 集成swagger--对于做前后端分离的项目,后端只需要提供接口访问,swagger提供了接口调用测试和各种注释的可视化web界面.配置swagger的扫描包路径,api信息等,见配置类SwaggerConfig.项目中遇到的下列注解都由swagger提供: @Api.@ApiOperation.@ApiModel.@ApiModelProperty访问http://localhost/sw…
场景 不管是传统行业还是互联网行业,我们都需要保证大部分操作是幂等性的,简单点说,就是无论用户点击多少次,操作多少遍,产生的结果都是一样的,是唯一的.而今次公司的项目里,又被我遇到了这么一个幂等性的问题,就是用户的余额充值.创建订单和订单支付,不管用户点击多少次,只会有一条充值记录,一条新订单记录,一条订单支付记录. 技术方案 现在使用比较广泛的方案都是基于Redis. 方案:Redis+token 处理流程:数据提交前,前端要向服务端的申请token,token(带有过期时间)放到redis:…
前言 在上一篇文章Spring Boot 学习笔记1——初体验之3分钟启动你的Web应用已经对Spring Boot的基本体系与基本使用进行了学习,本文主要目的是更加进一步的来说明对于Spring Boot使用上的具体的细节以及使用上的最佳实践, 经过了几天的文档阅读和实验,将自己这几天的学习心得在这里记录下来.如果有不对的地方,请指正! 1.依赖管理的配置 1.1 依赖管理的原理及最佳实践 我们在使用Spring Boot时,通常最好的方式是继承spring-boot-starter-pare…
Spring Boot 系列总结 1.SpringBoot自动装配 1.1 Spring装配方式 1.2 Spring @Enable 模块驱动 1.3 Spring 条件装配 2.自动装配正文 2.1 Spring Boot 自动装配实现 2.2 @EnableAutoConfiguration 实现 2.2.1 获取默认包扫描路径 2.3 自动装配的组件内部实现 3.SpringApplication启动类准备阶段 3.1 SpringApplication 配置 4.SpringAppli…
最近的项目用spring boot 框架 借此学习了一下 这里做一下总结记录 非常便利的一个框架 它的优缺点我就不在这背书了 想了解的可以自行度娘谷歌 说一下要写什么吧 其实还真不是很清楚,只是想记录一下自己学习的过程 愿景是写成一个小的spring boot系列然后能做一些迭代升级 也可以对比不同技术的优劣 所以也会写其一些周边 比如 用到的技术(datatables,maven,thymeleaf,mybatis,jpa) 和有(tong)趣(ku)的过程 废话就说的到这吧. 可以的话 每个…
历史文章 <国内最全的Spring Boot系列之一> 视频&交流平台 SpringBoot视频:http://t.cn/R3QepWG Spring Cloud视频:http://t.cn/R3QeRZc SpringBoot Shiro视频:http://t.cn/R3QDMbh SpringBoot交流平台:http://t.cn/R3QDhU0 SpringData和JPA视频:http://t.cn/R1pSojf SpringSecurity5.0视频:http://t.c…
前面的章节我们学习到 Spring Boot Log 日志使用教程 和 Spring Boot 异常处理与全局异常处理,本章我们结合 Aop 面向切面编程来实现全局拦截异常并记录日志. 在 Spring Boot 中 Aop 与 Ioc 可以说是 Spring 的灵魂,其功能也是非常强大. 本项目源码下载 1 新建 Spring Boot 项目 1)File > New > Project,如下图选择 Spring Initializr 然后点击 [Next]下一步 2)填写 GroupId(…
一.为什么需要面向切面编程? 面向对象编程(OOP)的好处是显而易见的,缺点也同样明显.当需要为多个不具有继承关系的对象添加一个公共的方法的时候,例如日志记录.性能监控等,如果采用面向对象编程的方法,需要在每个对象里面都添加相同的方法,这样就产生了较大的重复工作量和大量的重复代码,不利于维护.面向切面编程(AOP)是面向对象编程的补充,简单来说就是统一处理某一"切面"的问题的编程思想.如果使用AOP的方式进行日志的记录和处理,所有的日志代码都集中于一处,不需要再每个方法里面都去添加,极…
一.Mybatis回顾 1.MyBatis介绍 Mybatis是一个半ORM框架,它使用简单的 XML 或注解用于配置和原始映射,将接口和Java的POJOs(普通的Java 对象)映射成数据库中的记录. 2.Mybatis整体架构 二.Spring Boot整合Mybatis + Druid 1.在应用中导入maven依赖如下: <!-- mybatis --> <dependency> <groupId>org.mybatis.spring.boot</gro…