随笔分类 -  Spring

摘要:一、execution 和 annotation 两种方式设置切点匹配 package com.mangoubiubiu.show.a16; import org.springframework.aop.aspectj.AspectJExpressionPointcut; import org.sp 阅读全文
posted @ 2022-10-03 14:39 KwFruit 阅读(113) 评论(0) 推荐(0)
摘要:一 aspect 和 advisor的区别 https://blog.csdn.net/qq_44750696/article/details/101638722 二 advisor 演示 Spring 选择代理 package com.mangoubiubiu.show.a15; import o 阅读全文
posted @ 2022-10-02 17:37 KwFruit 阅读(80) 评论(0) 推荐(0)
摘要:总结 当调用 MethodProxy 的 invoke 或 invokeSuper 方法时, 会动态生成两个类 ProxyFastClass 配合代理对象一起使用, 避免反射 TargetFastClass 配合目标对象一起使用, 避免反射 (Spring 用的这种) TargetFastClass 阅读全文
posted @ 2022-10-02 15:47 KwFruit 阅读(549) 评论(0) 推荐(0)
摘要:一、模拟cglib代理 package com.mangoubiubiu.show.a14; public class Target { public void save(){ System.out.println("save()"); } public void save(int i){ Syst 阅读全文
posted @ 2022-09-25 16:17 KwFruit 阅读(319) 评论(0) 推荐(0)
摘要:一、模拟cglib代理 package com.mangoubiubiu.show.a14; import org.springframework.cglib.proxy.MethodInterceptor; import java.lang.reflect.Method; import java. 阅读全文
posted @ 2022-09-25 15:47 KwFruit 阅读(74) 评论(0) 推荐(0)
摘要:一、代码 package com.mangoubiubiu.show.asm; import java.lang.reflect.Field; import java.lang.reflect.Method; // 运行时请添加 --add-opens java.base/java.lang.ref 阅读全文
posted @ 2022-09-25 15:18 KwFruit 阅读(97) 评论(0) 推荐(0)
摘要:一、利用ASM插件生成 asm生成代理类的字节码代码 1、写好代理类 package com.mangoubiubiu.show.asm; import org.springframework.cglib.proxy.UndeclaredThrowableException; import java 阅读全文
posted @ 2022-09-25 11:55 KwFruit 阅读(75) 评论(0) 推荐(0)
摘要:一、利用Arthas工具 反编译出源码 发现和我们自己写的模拟jdk代理差不多 /* * Decompiled with CFR. * * Could not load the following classes: * com.mangoubiubiu.show.a12.JdkProxyDemo$F 阅读全文
posted @ 2022-09-25 10:50 KwFruit 阅读(32) 评论(0) 推荐(0)
摘要:一、获取目标方法的返回 package com.mangoubiubiu.show.a13; import java.lang.reflect.Method; public class A13 { interface Foo{ void foo() ; int bar() ; } interface 阅读全文
posted @ 2022-09-25 10:41 KwFruit 阅读(40) 评论(0) 推荐(0)
摘要:一、简单代理 package com.mangoubiubiu.show.a13; public class A13 { interface Foo{ void foo(); } static class Target implements Foo{ @Override public void fo 阅读全文
posted @ 2022-09-25 10:17 KwFruit 阅读(37) 评论(0) 推荐(0)
摘要:一、代码 package com.mangoubiubiu.show.a12; import org.springframework.cglib.proxy.Enhancer; import org.springframework.cglib.proxy.MethodInterceptor; pub 阅读全文
posted @ 2022-09-24 16:25 KwFruit 阅读(56) 评论(0) 推荐(0)
摘要:一、代码 package com.mangoubiubiu.show.a12; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; p 阅读全文
posted @ 2022-09-24 16:05 KwFruit 阅读(55) 评论(0) 推荐(0)
摘要:一、代码 package com.itheima.aop; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.slf4j.Logger; import or 阅读全文
posted @ 2022-09-24 15:38 KwFruit 阅读(183) 评论(0) 推荐(0)
摘要:一、代码 package com.itheima.aop; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.slf4j.Logger; import or 阅读全文
posted @ 2022-09-24 15:08 KwFruit 阅读(218) 评论(0) 推荐(0)
摘要:一、面试问题 1、如果一个单例Bean里面 注入多例 通过单例Bean对象获取到的多例Bean是单例还是多例 二、 失效演示 1、代码 package com.mangoubiubiu.show.a09; import org.springframework.beans.factory.annota 阅读全文
posted @ 2022-09-20 22:43 KwFruit 阅读(140) 评论(0) 推荐(0)
摘要:介绍 1、在当前版本的 Spring 和 Spring Boot 程序中,支持五种 Scope singleton,容器启动时创建(未设置延迟),容器关闭时销毁 prototype,每次使用时创建,不会自动销毁,需要调用 DefaultListableBeanFactory.destroyBean( 阅读全文
posted @ 2022-09-20 22:02 KwFruit 阅读(46) 评论(0) 推荐(0)
摘要:一 初始化 1、简介 Spring 提供了多种初始化手段,除了 @PostConstruct,@Bean(initMethod) 之外,还可以实现 InitializingBean 接口来进行初始化,如果同一个 bean 用了以上手段声明了 3 个初始化方法,那么它们的执行顺序是 @PostCons 阅读全文
posted @ 2022-08-28 15:50 KwFruit 阅读(59) 评论(0) 推荐(0)
摘要:一、失效演示 1、正常情况 package com.mangoubiubiu.show.a06; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; impo 阅读全文
posted @ 2022-08-28 15:03 KwFruit 阅读(470) 评论(0) 推荐(0)
摘要:一、Aware 1、Aware 接口的作用 Aware 接口提供了一种【内置】 的注入手段,例如 BeanNameAware 注入 bean 的名字 BeanFactoryAware 注入 BeanFactory 容器 ApplicationContextAware 注入 ApplicationCo 阅读全文
posted @ 2022-08-28 14:30 KwFruit 阅读(112) 评论(0) 推荐(0)
摘要:一、源方式自动注入 package com.mangoubiubiu.show.a05; import com.alibaba.druid.pool.DruidDataSource; import com.mangoubiubiu.show.a05.component.Bean2; import c 阅读全文
posted @ 2022-08-28 13:31 KwFruit 阅读(39) 评论(0) 推荐(0)