网站建设需招聘什么专业人温州购物网络商城网站设计制作

张小明 2026/1/7 10:34:02
网站建设需招聘什么专业人,温州购物网络商城网站设计制作,岚山网站建设公司,青浦网站制作公司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进行投诉反馈,一经查实,立即删除!

wordpress 微信注册湘潭网站优化公司

还在为PDF文档在不同电脑上显示异常而苦恼吗?中文文字变成空白方块、排版错乱、打印时字符缺失——这些困扰无数用户的PDF字体兼容性问题,通过PDF补丁丁的字体嵌入功能都能迎刃而解。本文将从实际应用场景出发,为你提供一套完整的PDF字体修复…

张小明 2026/1/3 17:28:47 网站建设

网站建设计划书模板php做的静态网站怎么加密

在 Node.js 的生态系统中,存在两种主要的模块规范:CommonJS (CJS) 和 ES Modules (ESM)。 理解它们的区别对于现代前端和后端开发至关重要,因为 Node.js 正在从 CJS 全面转向 ESM。1. CommonJS (CJS) CommonJS 是 Node.js 诞生的默认模块系统…

张小明 2026/1/6 19:54:13 网站建设

建设商场黄金网站asp无刷新网站模板

学术写作的本质是知识的系统化表达,而这种表达的形式、深度与规范要求随着教育层次的变化呈现出明显的阶段性特征。从专科的应用导向,到本科的知识整合,再到硕士的研究能力培养,直至博士的原创性贡献,每一阶段都对应着…

张小明 2026/1/3 17:27:43 网站建设

做软件的网站担保网站婚恋网站开发

第一章:Open-AutoGLM账单自动化系统设计全解析(银行不会告诉你的省钱秘籍)在现代金融环境中,个人与企业面临的最大挑战之一是如何高效管理多账户账单并优化现金流。Open-AutoGLM 是一个开源的智能账单自动化系统,利用大…

张小明 2026/1/7 1:42:00 网站建设

cms建站流程网站建设怎样推广

CUDA安装避坑指南:配合Miniconda-Python3.10实现PyTorch无缝对接 在深度学习项目中,最让人头疼的往往不是模型调参,而是环境配置——明明代码没问题,却卡在 torch.cuda.is_available() 返回 False。你是否也经历过这样的时刻&…

张小明 2026/1/3 17:26:40 网站建设

做网站手机软件适合医药公司做网站的图片

下面的要点可直接放进汇报 PPT,括号内是对应代码位置,便于领导追溯。迁移后的主要升级点(TDA4 相对 TDA2)预训练与模型装载规范化:在 TDA4 直接用 TDA2 产出的权重初始化 TTERMSegnetV30,并保留分支分组学习…

张小明 2026/1/6 21:16:35 网站建设