![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 95
小飞飞的技术笔记
生命不息,学习不止
展开
-
基于MyBatis插件开发SQL日志记录功能
在新项目中有个需求,需要记录下增删改的SQL并落表。一般考虑到的是需要利用Spring的AOP,抽取日志记录的功能,在持久层操作的时候进行统一增强。项目用到的持久层框架是MyBatis,那么直接想到的就是利用MyBatis的插件机制对执行的SQL进行记录。那么具体如何实现呢?原理又是什么?读了这篇文章的小伙伴就可以搞清楚啦。一、MyBatis插件介绍MyBatis大家都比较熟悉,实际使用也非常广泛,其内部提供了插件扩展机制来拦截SQL的执行。其执行原理如下图所示:SQL执行...原创 2021-09-17 17:33:41 · 907 阅读 · 0 评论 -
高并发系统三大利器之缓存(原理到应用场景)
一、高并发系统三大利器保护高并发系统的三大利器:限流、熔断降级、缓存。限流是指在面临瞬时巨大流量访问系统时(商品秒杀等)为了保证系统的可用性的一个限制手段。熔断降级一般一起使用,是为了在某些大流量业务场景(双11双12等)下保证核心业务可用的解决方案。(降级是主动的,熔断是被动的。熔断是指当上游服务调用下游服务出现不可用时,暂时切断请求,防止系统雪崩;降级是指某些情况下保证核心业务,将边缘业务服务暂时关闭。)缓存是为了缓解数据库的查询压力,对某些热点数据和核心业务数据添加缓存层进行访问...原创 2021-09-02 10:34:55 · 1211 阅读 · 0 评论 -
记录一次SpringBoot跨域的踩坑经历——SpringSecurity跨域解决方案(/oauth/token 401)
项目场景:目前在重构一个导购后端系统,我负责用户的模块和登录鉴权的整个业务的架构设计和代码编写利用SpringBoot + SpringSecurity + Oauth2完成了简单的登录和鉴权登录功能:首先需要调用/oauth/token接口,根据用户名密码获取toke,拿到token后将token放入请求头Header中再去请求其它接口。接口开发完成并使用Postman测试通过,再由前端去画页面联调接口。问题描述:问题就出现在了前端接口联调这里,前端是用Vue完成的,安装好Node原创 2021-04-23 13:10:52 · 2386 阅读 · 3 评论 -
从原理到代码一步步教你手写实现自定义迷你版SpringBoot
文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结一、需求及实现原理SpringBoot简而言之就是为了简化Spring应用开发而出现的一种框架(基于Spring4.0开发)。其约定优于配置的思想大大减少了XML配置项。我们实现自定义的SpringBoot需求很简单,就是完成Tomcat的启动,整合SpringMVC(注册DispatcherServlet前端控制器,自动扫描Bean组件)。我们抽取出两个问题进行具体分析:...原创 2021-03-09 12:58:44 · 682 阅读 · 4 评论 -
Spring中AOP源码浅析③
结合Spring中AOP源码浅析①Spring中AOP源码浅析②这两篇文章我们知道AOP的实现其实是通过引入AnnotationAwareAspectJAutoProxyCreator这个类(注解感知AspectJ自动代理创建器 BeanName:org.springframework.aop.config.internalAutoProxyCreator)去实现的。实际他的底层也是一个InstantiationAwareBeanPostProcessor后置处理器。结合两篇文章,简单画一下它的实现过...原创 2020-12-31 11:27:02 · 111 阅读 · 0 评论 -
Spring中AOP源码浅析②
上一篇文章Spring中AOP源码浅析①讲到AOP中实际是通过BeanPostProcesser后置处理器实现的。后置处理器就是在Bean初始化前后进行拦截调用。那么我们的后置处理器是如何加载和初始化呢?(后置处理器是一类特殊的Bean)猜想一下,肯定是在普通单例Bean之前进行加载和初始化操作,只有先加载了处理器才能通过处理器去拦截Bean。那么我们就从Bean的加载这一步看源码是如何实现的。还是使用Spring中AOP的使用这篇文章的代码运行调试。(测试类、配置类MainConfig、业务类原创 2020-12-29 16:45:53 · 116 阅读 · 0 评论 -
Spring中AOP源码浅析①
上篇文章Spring中AOP的使用讲到@EnableAspectJAutoProxy这个注解开启AOP,这个注解里面又引入了AspectJAutoProxyRegistrar(AspectJ自动代理注册类)这个类。继续跟进源码,AspectJAutoProxyRegistrar是实现了ImportBeanDefinitionRegistrar这个接口,这个接口在Spring注入Bean的四种方式,看这一篇就够了这篇文章有提到,使用RootBeanDefinition创建Bean的定义,然后通过BeanD原创 2020-12-28 16:07:23 · 105 阅读 · 1 评论 -
Spring中AOP的使用
AOP是面向切面编程。是指通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。简单来讲就是不改变原来业务代码的情况下给程序动态的添加功能的一种技术。例如通过AOP进行 日志记录、异常处理、事务处理等。引入依赖包:spring-aspects<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId>原创 2020-12-28 14:09:01 · 106 阅读 · 0 评论 -
Spring装配注解@Autowired@Resource@Qualifier@Inject@Primary傻傻分不清
@Controller、@Service、@Repository、和 @Component 的效果是一样的,都是为了让Spring容器统一管理,主要是为了业务区分。跟进源码看,其实都是@Component@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic @interface Controller { /** * The value may indicat原创 2020-12-24 18:49:28 · 126 阅读 · 1 评论 -
聊一聊SpringBean的生命周期——创建、初始化、销毁。
Bean的生命周期是指Bean的创建、初始化、销毁的过程。Bean的生命周期是由Spring的Ioc容器进行管理的。Bean的创建详细过程请看我之前的文章:Spring注入Bean的四种方式,看这一篇就够了原创 2020-12-24 10:50:49 · 374 阅读 · 0 评论 -
Spring注入Bean的四种方式,看这一篇就够了
1.通过xml配置注入bean原创 2020-10-22 10:29:51 · 2682 阅读 · 2 评论