网站是怎样建立的流程是什么个人博客系统毕业设计论文

diannao/2025/10/26 1:55:20/文章来源:
网站是怎样建立的流程是什么,个人博客系统毕业设计论文,网站开发算法,百度网站做不做转载自 一次动态代理的填坑之旅 背景 想在现有的接口加上熔断降级或者限流的功能#xff0c;比较好的方式是通过注解的方式#xff0c;并基于动态代理进行实现#xff0c;下面代码是Rhino的实现 Rhino public class ServiceImpl {Degrade(rhinoKey syncMethod-0比较好的方式是通过注解的方式并基于动态代理进行实现下面代码是Rhino的实现 Rhino public class ServiceImpl {Degrade(rhinoKey syncMethod-0,  fallBackMethod fallbackMethod)public void method() throws Exception {int i 1 / 0;}private String fallbackMethod() throws Exception {return fallback;}} 通过在方法添加Degrade注解很方便的赋予了method方法熔断降级功能在该方法的失败率达到阈值时就自动熔断并调用降级方法。 这里的动态代理并没有使用Spring的AOP而是自己实现了 BeanPostProcessor和 BeanFactoryPostProcessor接口另外也实现了 PriorityOrdered接口。 在生成动态代理对象的时候根据类是否有实现接口选择使用JDK的Proxy还是使用Cglib。 /** * param clazz * param origin * return */private static Object createProxyService(Class clazz, Object origin) {Object proxy;if (clazz.getInterfaces().length 0) {proxy Proxy.newProxyInstance(clazz.getClassLoader(), clazz.getInterfaces(), new RhinoInvocationHandler(origin, clazz));} else {Enhancer enhancer new Enhancer();enhancer.setSuperclass(clazz);enhancer.setCallback(new RhinoInvocationHandler(origin, clazz));proxy enhancer.create();}return proxy; } 这样的实现在99%的情况下是没有问题的直到有一天有两个业务同时反馈了一个问题使用了熔断降级的注解之后发现自身的Spring AOP注解失效了或者是直接启动异常WTF这个问题一直都没考虑过好吗... 为什么会这样Spring AOP到底干了什么或者是自己的注解到底有什么问题 复现问题 为了快速定位问题并解决问题最好的办法就是复现该问题写了一个简单的Spring AOP的例子。 Component  //加入到IoC容器 Aspect  //指定当前类为切面类 public class Aop {Pointcut(execution(* com.dianping.rhino.aop.*.*(..)))public void pointCut(){}Before(pointCut())public void begin(){System.out.println(begin);}After(pointCut())public void close(){System.out.println(close);}Around(value annotation(MethodLog))public void around() {System.out.println( MethodLog );} } 这里简短的解释下Spring AOP各个注解的作用 Aspect切面标识该类是一个切面类 Pointcut切入点用来标识哪些方法是需要被添加切面的 Before在切入点执行方法之前进行增强 After在切入点执行方法之后进行增强 Around在该例子中只有添加了MethodLog注解的方法才会被增强 一切准备就绪开启DEBUG之旅Spring的内部逻辑有点复杂整个过程需要一点耐心。 通过Debug发现Rhino的代理对象Processor排在Spring AOP的Processor意味着Rhino生成的代理对象会传给Spring AOP的Processor再做一层代理在Spring AOP生成代理对象的内部逻辑中有这么一段判断逻辑。 在createProxy方法中会根据传入的beanClass即上一个Processor处理过的对象判断是否有实现接口。 回到Rhino的实现因为ServiceImpl类没有实现接口所以内部会采用CGLIB的方式创建代理对象我们来看下这个对象的接口。 好家伙默默的给加了一个Factory接口这样在Spring AOP的处理中就当做有接口的情况进行实现了。这里最大的问题是最终生成的代理对象是Factory类型的对象在赋值给ServiceImpl变量时就会抛异常了。 解决问题 终于找到了问题的所在那么改如何解决呢 无法修改Spring AOP的逻辑但是可以控制Rhino的逻辑只需要把Rhino的Processor移到Spring AOP的Processor之后这样就可以在Rhino的Proccessor中处理经过Spring AOP的代理过的beanClass对象了有效的避免这个问题。 如何有效调整Processor的处理顺序 通过分析发现Spring AOP的内部实现基于Ordered接口而Rhino的实现是基于 PriorityOrdered接口而且处理器在初始化完成后会进行排序实现 PriorityOrdered接口的会放到前面相同类型的再根据设置的order进行排序。很显然Rhino的Processor被放在前面找到了问题解决方法也很简单Rhino也换成Order接口并且order设置成 LOWEST_PRECEDENCE即排在最后面。 结论 经过上面的调整之前这个问题确实被有效的解决了以前遇到Spring的异常都是一脸懵逼。所以遇到类似的问题最好通过DEBUG源码去发现问题并解决问题这样可以有效的防止后续的继续挖坑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机怎么制作网站教程步骤微信公号嵌入网站开发

目录 1、获取桌面路径 法一:利用winshell库 法二:利用winreg库 2、获取系统盘符 3、获取电脑用户名 4、获取软件自启动存放目录 1、获取桌面路径 法一:利用winshell库 import winshell print(winshell.desktop()) 法二:利…

侧边栏jquery网站后台自己做的网站怎么删除

如何退出Activity?如何安全退出已调用多个Activity的Application?对于单一Activity的应用来说,退出很简单,直接finish()即可。当然,也可以用killProcess()和System.exit()这样的方法。但是,对于多Activity的…

泗阳做网站长春代做网站

1、在首页新品、热卖、精品等调用商品销售打开 includes/lib_goods.php在文件尾部?>前添加以下代码:function get_buy_sum($goods_id){$sql "select sum(goods_number) from " . $GLOBALS[ecs]->table(order_goods) . " AS g ,".$GLOBA…

中创高科官方网站wordpress 邮件代码

Python 类变量和成员变量类与对象的方法我们已经讨论了类与对象的功能部分,现在我们来看一下它的数据部分。事实上,它们只是与类和对象的名称空间 绑定 的普通变量,即这些名称只在这些类与对象的前提下有效。有两种类型的 域 ——类的变量和对…

橙色的网站中小型网站建设与管理设计总结

x现在没时间,留个坑 转载于:https://www.cnblogs.com/smzd/p/11634665.html

郴州做网站公司室内设计资源网

通过添加语言,你可以更改用于在 Windows、应用和 Web 中读取和写入的语言。添加语言若要更改你的 Windows 显示语言或者添加键盘以进行键入,首先要将一种语言添加到语言列表中。从屏幕右边缘向中间轻扫,点击“设置”,然后点击“更…

宁波专业外贸网站建设做网站的具体步骤

274. H 指数 给你一个整数数组 citations ,其中 citations[i] 表示研究者的第 i 篇论文被引用的次数。计算并返回该研究者的 **h 指数。 根据维基百科上 h 指数的定义:h 代表“高引用次数” ,一名科研人员的 h 指数 是指他(她&a…

易销云建站公司东莞seo优化公司

题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则…

企业网站建设知乎丽水建设公司网站

家人们 今天从老杨那里又学到新东西了&#xff01; 赶紧来看看吧 第一个方法&#xff1a; // 使用ref声明一个变量const tel useRef(null)const pass useRef(null) 再给input 内标签属性里面绑定 ref{变量名} <inputclassName{style.inputs}type"text"placeh…

网站设计英语WordPress文章图片怎么上传

根据Github Trendings的统计&#xff0c;今日(2023-12-23统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目6C项目2C项目1Jupyter Notebook项目1HTML项目1Go项目1非开发语言项目1 免费API集体清单 创建周期…

免费的企业网页制作网站北京备案网站负责人

1.引言   随着网络技术的飞速发展和普及&#xff0c;进入了信息大爆炸的时代。信息无处不在&#xff0c;给我们的学习生活带来了诸多便捷&#xff0c;由于堪称海量的信息量&#xff0c;我们从中获取有用的信息变得困难&#xff0c;解决这一难题就是要对这些大量的信息进行分…

域名cn是个什么网站微信网站怎么建立

单片机串口通过查询接收数据,同时具备接收超时、异常判断,常规通用处理算法实现;1、实现过程 (1)初始化串口:首先,需要配置串口的基本参数,如波特率、数据位、停止位和校验位等。这通常涉及到GPIO引脚的配置(如PA2为发送引脚,PA3为接收引脚),以及USART的初始化。 …

个人网站制作代码网站怎么加友情链接

详见&#xff1a; http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp61 在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度&#xff0c;从最接近用…

路由器可以做网站服务器吗wordpress 分类列表插件

CAN总线由其高可靠和实时性被广泛应用于新能源汽车、轨道交通、医疗、工程机械等行业&#xff0c;本文介绍CAN总线关闭对新能源汽车的功能和安全性能产生的影响&#xff0c;并针对工程师关注的问题&#xff0c;提供有效的解决方案。2020年10月28日全球汽车峰会中展示了未来新能…

织梦网站名称修改wordpress怎么接入支付

多语言应用开发中本地化信息对照表。包含区域编号、本地化名称、英语名称、中文名称、国家地区码、语言代码和流通币种等。区域编号本地化名称英语名称中文名称国家地区语言流通币种排序id-idBahasa IndonesiaIndonesian印度尼西亚语IDidIDR1ms-myBahasa MelayuMalay (Malaysia…

自贡网站制作在线制作网站源码

第十二章 Linux系统管理&#xff08;进程管理、工作管理和系统定时任务&#xff09;&#xff08;二&#xff09; 十、Linux 终止进程&#xff08;kill命令&#xff09; Linux kill命令详解&#xff1a;终止进程 kill 从字面来看&#xff0c;就是用来杀死进程的命令&#xff…

网站系统管理员模块广西上林建设局网站

前言&#xff1a; 介绍员工信息&#xff1a;一个小型公司的人员信息管理系统 某小型公司&#xff0c;主要有四类人员&#xff1a;经理、技术人员、销售经理和推销员。现在&#xff0c;需要存储这些人员的姓名、编号、级别、当前薪水。计算月薪总额并显示全部信息人员编号基数为…

表白网站建设江西省做网站

1. ES 基础一网打尽 1.1 ES定义 ESelaticsearch简写&#xff0c; Elasticsearch是一个开源的高扩展的分布式全文检索引擎&#xff0c;它可以近乎实时的存储、检索数据&#xff1b;本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理PB级别的数据。 Elasticsear…

百度做网站的费用网站建设硬件

离GitHub上996.ICU项目的发布时间已过去好一段时间了&#xff0c;作为一名计算机专业的在读生&#xff0c;对996有一点体会&#xff0c;最直观的体会就是为了提升技术&#xff0c;连续一个学期在实验室工作超过10个小时。 人民日报发文《被“996”围困的年轻人&#xff0c;像是…

旅游网站建设与规划vs哪个版本做网站好

具体来说包括: Percona Monitoring Plugins 这是一组用于收集MySQL实例各种性能指标和状态的插件脚本,包括: mysqld_stats.pl - 收集服务器状态计数器mysqld_statement_replay.pl - 进行负载模拟测试pt-status - 收集InnoDB资源使用情况等 Percona Templates 基于这些插件收集…