郑州汉狮做网站多少钱宁波seo服务推广平台

张小明 2026/1/11 21:37:32
郑州汉狮做网站多少钱,宁波seo服务推广平台,不错的网站建设公司,凡科网站怎么建设个人网站12.4号14#xff1a;01我终于整理完笔记#xff0c;理清了所有知识点。 关于spring的两大核心#xff1a;Ioc和AOP AOP的底层#xff1a;动态代理技术 为什么要有AOP#xff1f; 一般一个系统当中都会有一些系统服务#xff0c;例如#xff1a;日志、事务管理、安全等。…12.4号1401我终于整理完笔记理清了所有知识点。关于spring的两大核心Ioc和AOPAOP的底层动态代理技术为什么要有AOP一般一个系统当中都会有一些系统服务例如日志、事务管理、安全等。这些系统服务被称为交叉业务这些交叉业务几乎是通用的不管你是做银行账户转账还是删除用户数据。日志、事务管理、安全这些都是需要做的。这会产生什么问题代码的复用性差。交叉业务与核心业务书写在一起后期维护难。AOP做了什么为了让代码客户端专注于核心业务代码也方便维护从纵向的核心业务把重复的横向业务代码抽离出来形成一个独立的组件然后以横向交叉的方式应用到业务流程当中的过程被称为AOP。AOP底层的实现AOP底层是靠JDK的自带的动态代理技术和CGLIB的动态代理实现的JDK 动态代理主要用于对接口进行代理其底层通过在运行时内存中动态生成一个实现了目标接口的代理类字节码并借助 InvocationHandler 实现方法拦截。CGLIB 通过在运行时动态生成目标类的子类代理类来实现对类的代理其底层基于字节码 生成技术通过继承并重写非 final 方法以插入代理逻辑。补充即使目标类有接口你也可以强制 Spring 使用 CGLIB通过配置proxyTargetClass true。[!NOTE] 前面静态代理中不是说继承的耦合度高吗为啥CGLIB使用继承实现了动态代理它在内存中生成无关业务代码也就不存在这类问题。AOP实现的细节Spring AOP 的实现细节可以简要概括为以下几点基于代理Spring AOP 不修改字节码而是在运行时为目标 Bean 创建代理对象JDK 动态代理或 CGLIB通过代理拦截方法调用。代理选择目标类实现了接口 → 默认使用JDK 动态代理无接口或配置proxyTargetClasstrue→ 使用CGLIB 代理。织入时机在 Bean 初始化完成后由BeanPostProcessor如AnnotationAwareAspectJAutoProxyCreator判断是否需要代理并将代理对象放入 Spring 容器替换原始 Bean。通知执行方法调用时代理对象通过责任链模式依次执行各类通知Before、Around、After等最后调用目标方法通过反射。统一适配所有通知类型如MethodBeforeAdvice最终都被适配成MethodInterceptor统一在拦截链中执行。局限性只能拦截public 方法且self-invocation内部调用不会触发 AOP因为调用的是 this 而非代理对象。总结Spring AOP 动态代理 BeanPostProcessor 责任链 反射全程在运行时完成对业务代码无侵入。Spring AOP 的实现流程1.启动时扫描切面Spring 容器启动时通过EnableAspectJAutoProxy或 XML 配置注册一个特殊的BeanPostProcessorAnnotationAwareAspectJAutoProxyCreator。它会识别所有带Aspect注解的类并解析其中的Before、After、Around等通知转换成Advisor包含 Pointcut Advice。2.Bean 初始化后判断是否需要代理当每个 Bean 初始化完成后上述BeanPostProcessor的postProcessAfterInitialization()方法被调用。它检查该 Bean 的类和方法是否匹配已有的Pointcut 表达式。如果匹配就进入代理创建流程。3.选择代理方式并创建代理对象判断目标类是否有接口有接口 → 默认用JDK 动态代理生成$Proxy0类无接口 或 开启proxyTargetClasstrue→ 使用CGLIB生成Xxx$$EnhancerBySpringCGLIB$$...子类创建代理对象内部持有原始目标对象 所有匹配的 Advisor 列表。4.将代理对象放入容器这个容器就是 Spring 的 IoC 容器本身容器中保存的是代理对象而不是原始 Bean。后续所有对该 Bean 的依赖注入或获取都返回这个代理。5.调用方法时触发拦截链当调用代理对象的方法时JDK 代理 → 调用InvocationHandler.invoke()CGLIB 代理 → 调用MethodInterceptor.intercept()两者都会构建一个MethodInvocation对象内部包含目标方法、参数、通知链List。6.按顺序执行通知 目标方法调用methodInvocation.proceed()以责任链模式依次执行Before通知Around的前半部分目标方法通过反射调用Around的后半部分AfterReturning成功或AfterThrowing异常After最终通知类似 finally
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

800元做网站wordpress好看的页面跳转

DiskInfo硬件检测与Qwen-Image GPU算力匹配建议 在AI生成内容(AIGC)技术迅猛发展的今天,文生图模型已不再是实验室里的概念验证,而是广泛应用于广告设计、影视预演、数字艺术创作等真实业务场景。然而,随着模型参数规模…

张小明 2026/1/7 3:33:52 网站建设

广州网站建设哪家技术好网站空间免费吗

揭秘CosyVoice3背后的AI技术:大模型驱动的声音克隆是如何实现的 在虚拟主播一夜爆红、有声书内容需求激增的今天,个性化语音合成已不再是实验室里的“黑科技”,而是实实在在影响用户体验的关键能力。然而,传统TTS系统常常让人失望…

张小明 2026/1/7 3:33:57 网站建设

建站一般要多少钱网站企业

FGO-py主题定制终极指南:打造个性化游戏助手体验 【免费下载链接】FGO-py FGO-py - 一个 Fate/Grand Order(命运-冠位指定)的助手工具,提供自动化游戏操作,适合对游戏开发和自动化脚本有兴趣的程序员。 项目地址: ht…

张小明 2026/1/7 3:33:56 网站建设

韶山网站建设ui人机界面设计

又到毕业季,毕业论文除了查重外,真的别忘记查ai率。 今天就告诉大家高重复率以及高ai率应该如何快速降低!实测全网产品,无广!! 如果这篇整理能帮你少走点弯路,那就值了。 1、嘎嘎降AI 官网&…

张小明 2026/1/7 3:35:16 网站建设

网站怎么放在服务器上莱芜市在线论坛话题

PrusaSlicer挤出机校准终极指南:彻底解决3D打印尺寸偏差 【免费下载链接】PrusaSlicer G-code generator for 3D printers (RepRap, Makerbot, Ultimaker etc.) 项目地址: https://gitcode.com/gh_mirrors/pr/PrusaSlicer 还在为3D打印件的尺寸不准确而烦恼吗…

张小明 2026/1/7 3:35:18 网站建设

响应式网站建设企业济南网站建设公司晟创未来

还在为NGA论坛繁杂的界面而烦恼吗?想要在摸鱼时拥有更优雅的浏览体验吗?NGA-BBS-Script浏览器脚本正是为你量身打造的完美解决方案!这款NGA优化插件能够彻底改变你的论坛浏览方式,让每一次点击都充满惊喜。 【免费下载链接】NGA-B…

张小明 2026/1/6 3:53:14 网站建设