java-动态代理
文章平均质量分 54
动态代理的原理及使用包括各种框架中对代理的运用原理
暮色里de白雪檐
相信自己,人生之美在于当下
人生四季,寒暑交替,笑看起起落落
心若简单,生活就简单
展开
-
【SpringAop】【统一日志处理】注解方式理解以及使用
Retention(RetentionPolicy.RUNTIME) // 什么时候使用该注解,我们定义为运行时;@Target({ElementType.METHOD}) //用于什么地方,我们定义为作用于方法上;@Documented //注解是否将包含在 JavaDoc 中配置AOP切面@Aspect:声明该类为一个注解类;@Pointcut:定义一个切点,后面跟随一个表达式,表达式可以定义为切某个注解,也可以切某个 package 下的方法;原创 2020-07-15 15:56:00 · 391 阅读 · 1 评论 -
API接口加密方式业务实战
在需要加密的接口上通过实现自定义注解,对方法的返回值加密。原创 2024-05-14 14:14:24 · 233 阅读 · 0 评论 -
springboot实现全局事务管理
首先需要实现全局事务管理,你得知道事务的原理包括一些事务的基础概念。原创 2023-10-09 17:54:13 · 488 阅读 · 0 评论 -
Spring到底何时为使用事务注解的bean创建代理 ?
今天说这个问题之前,大家需要知道一个热知识,那就是一个类中的某个方法被赋予注解@Transactional,则无法在本类中进行调用,否则事务失效,那是因为,无法创建代理类,也就是无法使用事务特性,毕竟spring的事务是通过AOP中的代理模式进行实现的,那么问题来了?spring的bean何时被创建代理类呢,又怎么知道的呢,如果@Transactional放在类上,那就可以理解bean在进行实例化的时候就知道了,但是放在方法上呢?其实也是通过反射的方式给这个对象进行生成代理类的,接下来就重点讲解下这个问题转载 2022-01-11 22:58:17 · 768 阅读 · 0 评论 -
Springboot 自定义注解+AOP实现修改参数的值
自定义注解package com.zkml.study.annotation;import java.lang.annotation.*;@Target({ElementType.PARAMETER, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface CheckNullParams { }实现AOPpackage com.zkml.study.aop;.原创 2021-03-09 14:21:36 · 4138 阅读 · 1 评论 -
spring-boot-route 使用aop记录操作日志
日志记录表日志记录表主要包含几个字段,业务模块,操作类型,接口地址,处理状态,错误信息以及操作时间。数据库设计如下:CREATE TABLE `sys_oper_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '日志主键', `title` varchar(50) CHARACTER SET utf8 DEFAULT '' COMMENT '模块标题', `business_type` int(2) DEFAULT '..转载 2020-12-18 09:08:20 · 130 阅读 · 2 评论 -
理解Java反射的正确姿势-基础版
反射简介反射是Java的高级特性之一,但是在实际的开发中,使用Java反射的案例却非常的少,但是反射确实在底层框架中被频繁的使用。比如:JDBC中的加载数据库驱动程序,Spring框架中加载bean对象,以及态代理,这些都使用到反射,因为我们要想理解一些框架的底层原理,反射是我们必须要掌握的。理解反射我们先从他的概念入手,那么什么是反射呢?反射就是在运行状态能够动态的获取该类的属性和方法,并且能够任意的使用该类的属性和方法,这种动态获取类信息以及动态的调用对象的方法的功能就是反射。实现上面操作.原创 2020-12-14 15:03:03 · 141 阅读 · 0 评论 -
解析JDK动态代理实现原理
解析JDK动态代理实现原理原创 2020-10-27 14:17:58 · 130 阅读 · 0 评论 -
深入浅出Mybatis源码 — SQL执行流程分析
在之前的几篇文章中已经介绍了mybatis的底层执行过程的概述以及如果手写一个自定义插件demo,但是对于某些博友而已或许还是不太了解,那么这篇博文将全方面的带你走进mybatis是如何一步一步的执行SQL语句,在揭开面纱的同时也会带你了解到底在哪个地方执行了拦截呢?那么,废话不多说,开始吧SqlSessionFactory 与 SqlSession通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlSession的重要性了吧, 没错,从表面上来看,咱们都是通过SqlSession去原创 2020-09-24 17:30:50 · 192 阅读 · 0 评论 -
手撸一个mybatis自定义插件(sql拦截器)
mybatis插件(准确的说应该是around拦截器,因为接口名是interceptor,而且invocation.proceed要自己调用,配置中叫插件)功能非常强大,可以让我们无侵入式的对SQL的执行进行干涉,从SQL语句重写、参数注入、结果集返回等每个主要环节,典型的包括权限控制检查与注入、只读库映射、K/V翻译、动态改写SQL。前提就是如果想比较深入的了解插件的原理还需要大家对mybatis实现sql底层原理有个大概的了解,当然如果只是应用开发这篇就够了MyBatis原理分析-深入浅出MyBati原创 2020-09-24 11:33:26 · 747 阅读 · 0 评论