当前位置: 首页 > news >正文

网站主页模板图片如何设计产品网站建设

网站主页模板图片,如何设计产品网站建设,360排名优化,用iis浏览网站文章目录 责任链模式工厂模式适配器模式代理模式模版方法观察者模式构造器模式 责任链模式 Spring中的Aop的通知调用会使用责任链模式责任链模式介绍 角色#xff1a;抽象处理者#xff08;Handler#xff09;具体处理者#xff08;ConcreteHandler1#xff09;客户类角… 文章目录 责任链模式工厂模式适配器模式代理模式模版方法观察者模式构造器模式 责任链模式 Spring中的Aop的通知调用会使用责任链模式责任链模式介绍 角色抽象处理者Handler具体处理者ConcreteHandler1客户类角色ClientSpring源码介绍 spring中Aop的责任链模式相对于传统的责任链模式做了一定的改造。 传统的设计模式抽象处理者会有一个方法设置和获取具体处理者的下一个处理者的方法。 如 public abstract class Handler {private Handler next;public Handler getNext() {return next;}public void setNext(Handler next) {this.next next;}//处理请求的方法public abstract void handleRequest(String request); }但是Spring中的责任链模式没有这两个方法而是抽出一个公共的处理方法方法内有数组和下标来完成链式。 public class ReflectiveMethodInvocation implements ProxyMethodInvocation, Cloneable {// 环绕通知类protected final List? interceptorsAndDynamicMethodMatchers;// 下标private int currentInterceptorIndex -1; /*** 递归获取通知然后执行* return* throws Throwable*/OverrideNullablepublic Object proceed() throws Throwable {// We start with an index of -1 and increment early.// 从索引为-1的拦截器开始调用并按序递增如果拦截器链中的拦截器迭代调用完毕开始调用target的函数这个函数是通过反射机制完成的// 具体实现在AopUtils.invokeJoinpointUsingReflection方法中if (this.currentInterceptorIndex this.interceptorsAndDynamicMethodMatchers.size() - 1) {return invokeJoinpoint();}// 获取下一个要执行的拦截器沿着定义好的interceptorOrInterceptionAdvice链进行处理Object interceptorOrInterceptionAdvice this.interceptorsAndDynamicMethodMatchers.get(this.currentInterceptorIndex);if (interceptorOrInterceptionAdvice instanceof InterceptorAndDynamicMethodMatcher) {// Evaluate dynamic method matcher here: static part will already have// been evaluated and found to match.// 这里对拦截器进行动态匹配的判断这里是对pointcut触发进行匹配的地方如果和定义的pointcut匹配那么这个advice将会得到执行InterceptorAndDynamicMethodMatcher dm (InterceptorAndDynamicMethodMatcher) interceptorOrInterceptionAdvice;Class? targetClass (this.targetClass ! null ? this.targetClass : this.method.getDeclaringClass());if (dm.methodMatcher.matches(this.method, targetClass, this.arguments)) {return dm.interceptor.invoke(this);}else {// Dynamic matching failed.// Skip this interceptor and invoke the next in the chain.// 如果不匹配那么proceed会被递归调用知道所有的拦截器都被运行过位置return proceed();}}else {// Its an interceptor, so we just invoke it: The pointcut will have// been evaluated statically before this object was constructed.// 普通拦截器直接调用拦截器将this作为参数传递以保证当前实例中调用链的执行return ((MethodInterceptor) interceptorOrInterceptionAdvice).invoke(this);}} }其中的最后一句 // 普通拦截器直接调用拦截器将this作为参数传递以保证当前实例中调用链的执行 return ((MethodInterceptor) interceptorOrInterceptionAdvice).invoke(this);MethodInterceptor就是抽象处理者 FunctionalInterface public interface MethodInterceptor extends Interceptor {/*** */Object invoke(MethodInvocation invocation) throws Throwable; }具体的执行者有 AspectJAfterAdvice、AspectJAfterReturningAdvice、AspectJAfterThrowingAdvice、AspectJMethodBeforeAdvice、AspectJAroundAdvice 工厂模式 Spring中的获取Bean就是工厂模式如BeanFactory获取工厂模式介绍 角色抽象产品具体产品抽象工厂具体工厂Spring源码介绍 抽象工厂 public interface BeanFactory {Object getBean(String name) throws BeansException;... }具体工厂 适配器模式 Spring中的根据通知的时候将Advisor适配为MethodInterceptor适配器介绍 角色目标接口抽象适配器具体适配器抽象源接口具体源接口适配器就是将源接口适配为目标接口Spring中的源码介绍 抽象适配器 public interface AdvisorAdapter {/*** 适配方法将Advisor适配为MethodInterceptor Advisor就是源接口MethodInterceptor就是目标接口*/MethodInterceptor getInterceptor(Advisor advisor); }具体适配器 class AfterReturningAdviceAdapter implements AdvisorAdapter, Serializable {Overridepublic boolean supportsAdvice(Advice advice) {return (advice instanceof AfterReturningAdvice);}Overridepublic MethodInterceptor getInterceptor(Advisor advisor) {AfterReturningAdvice advice (AfterReturningAdvice) advisor.getAdvice();return new AfterReturningAdviceInterceptor(advice);} }具体源接口 代理模式 cglib、gdk代理模版方法 Spring中的refresh方法中的postProcessFactory、onRefresh等观察者模式 Spring中的事件监听角色 抽象目标 具体目标 具体观察者 抽象观察者 抽象目标里面会有一个数组存放具体的观察者并且会有一个添加删除观察者的方法还有一个通知所有观察者的方法。具体目标需要通知观察者的时候遍历数组通知观察者Spring中的事件监听做了一定的变动 有四个角色 广播器其实就是我们的抽象目标包含了添加删除广播事件方法 监听器监听广播器广播的事件 事件 事件源触发事件的人将事件添加到广播器中 构造器模式 Spring中解析xml或者注解为BeanDefinition信息的时候会使用BeanDefinitionHandler类该类里面包含了一个 BeanDefinition 字段可以调佣BeanDefinitionHandler中的方法给该字段设值最后可以调用方法获取BeanDefinition
http://www.sadfv.cn/news/137255/

相关文章:

  • 网站诚信认证电话销售建一个域名网站要多少钱
  • 用织梦软件如何做网站模拟登录wordpress c
  • 怎么套网站网站代码上传后无法打开
  • 领卷网站怎么做怎样做网站海报
  • 网站打开速度很慢网站安全检测怎么关掉
  • 网站定制一般价格多少什么网站做简历
  • 怎么写代码自己制作网站wordpress 主题显示图片
  • 上外网看新闻去哪个网站安阳网络营销的几种方式
  • 网站设计的要求商城网站建设需要注意什么
  • 可以做网站的公司php购物网站开发成品
  • 全国网站建设公司有多少家网页设计与网站建设考试题
  • 建设工程现行标准查询网站广州网站建设公司乐云seo
  • 东莞网站建设网站推广价钱咸鱼网站做链接
  • 黄图网站有哪些 推荐营销型网站建设系统
  • discuz做视频网站asp网站 工具
  • 手机网站制作公司 广州网络营销运营策划
  • 深圳网站建设怎么选择服务器windos做网站
  • php cms网站建设wordpress首页导航代码
  • 大良营销网站建设机构网店代运营公司
  • 上海cms建站系统福利窝又一个wordpress
  • 新开传奇网站手游文明网站建设方案及管理制度
  • 网站怎样注册备案玉林网站设计
  • 德阳 网站建设王也高清全屏壁纸
  • 免费网站收录入口互联网平台构建怎么写
  • 湖州市建设局网站6建设信用卡网站首页
  • 深圳外贸建站怎样用自己的电脑,做网站
  • 万网域名绑定到其它网站安装wordpress到服务器
  • 石龙东莞网站建设三明市建设局网站
  • 商业网站设计专业做网站视频网站
  • 丽水市住房和城建建设局网站网站建设开户行查询