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

网站动画用什么程序做自己做网站挂广告怎么赚钱

网站动画用什么程序做,自己做网站挂广告怎么赚钱,石碣做网站,长安网站建设网络推广目录 工厂模式 组合模式 适配器模式 代理模式 单例模式 观察者模式 模板方法模式 责任链模式 Spring有着非常优雅的设计#xff0c;很多地方都遵循SOLID原则#xff0c;里面的设计模式更是数不胜数大概有以下几种#xff1a; 工厂模式 所谓的工厂模式#xff0c;核…目录 工厂模式 组合模式 适配器模式 代理模式 单例模式 观察者模式 模板方法模式 责任链模式 Spring有着非常优雅的设计很多地方都遵循SOLID原则里面的设计模式更是数不胜数大概有以下几种 工厂模式 所谓的工厂模式核心是屏蔽内部的实现直接由client使用即可Spring的IOC就是一个非常好的工厂模式的例子Spring IOC 容器就像是一个工厂一样当我们需要创建一个对象的时候只需要配置好配置文件/注解即可完全不用考虑对象是如何被创建出来的IOC 容器负责创建对象将对象连接在一起配置这些对象并从创建中处理这些对象的整个生命周期直到它们被完全销毁Spring使用工厂模式可以通过 BeanFactory 或 ApplicationContext 创建 bean 对象两者对比 BeanFactory延迟注入(使用到某个 bean 的时候才会注入)相比于ApplicationContext来说会占用更少的内存程序启动速度更快ApplicationContext容器启动的时候不管你用没用到一次性创建所有 beanBeanFactory 仅提供了最基本的依赖注入支持ApplicationContext 扩展了 BeanFactory除了有BeanFactory的功能还有额外更多功能所以一般开发人员使用ApplicationContext会更多 组合模式 组合模式在Spring MVC中用的非常多其中的参数解析响应值处理等模块就是使用了组合模式拿参数解析模块举例类图如下 可以发现整体的参数解析模块中由一个接口 HandlerMethodArgumentResolver 负责其中父节点会实现该接口同时对所有的具体的子接口进行聚合其实这个里面不止用了组合模式接口还提供了 #supportsParamerter 方法去判断是否执行该resolver这也是策略模式的一种 适配器模式 适配器模式简而言之就是上游为了适应下游而要做一些适配承担适配工作的模块就叫做适配器常见的场景是甲方因为话语权很高提供了一套交互模型而所有对接甲方模型的乙方就需要通过适配器模式来适配甲方的模型和自己已有的系统在Spring MVC中HandlerAdapter 就是典型的适配器模式参考其注释我们可以发现 对于DispatcherServlet来说HandlerAdapter是核心的业务逻辑处理流程DispatcherServlet只负责调用 HandlerAdapter#handle 方法即可至于当前Http的请求该如何处理则交给HandlerAdapter的实现方负责换句话说HandlerAdapter只是定义了和DispatcherServlet交互的标准帮助不同的实现适配了DispatcherServlet而已譬如用于Controller注解解析和url映射的逻辑就是通过 RequestMappingHandlerAdapter 实现的 Spring AOP中的适配器模式 我们知道 Spring AOP 的实现是基于代理模式但是 Spring AOP 的增强或通知(Advice)使用到了适配器模式与之相关的接口是AdvisorAdapterAdvice 常用的类型有BeforeAdvice目标方法调用前前置通知、AfterAdvice目标方法调用后后置通知、AfterReturningAdvice(目标方法执行结束后return之前)等等每个类型Advice通知都有对应的拦截器MethodBeforeAdviceInterceptor、AfterReturningAdviceAdapter、AfterReturningAdviceInterceptorSpring预定义的通知要通过对应的适配器适配成 MethodInterceptor 接口(方法拦截器)类型的对象如MethodBeforeAdviceInterceptor 负责适配 MethodBeforeAdviceSpring MVC中的适配器模式 在Spring MVC中DispatcherServlet 根据请求信息调用 HandlerMapping解析请求对应的 Handler解析到对应的 Handler也就是我们平常说的 Controller 控制器后开始由 HandlerAdapter 适配器处理HandlerAdapter 作为期望接口具体的适配器实现类用于对目标类进行适配Controller 作为需要适配的类为什么要在 Spring MVC 中使用适配器模式Spring MVC 中的 Controller 种类众多不同类型的 Controller 通过不同的方法来对请求进行处理如果不利用适配器模式的话DispatcherServlet 直接获取对应类型的 Controller需要自行来判断像下面这段代码一样 假如我们再增加一个 Controller类型就要在上面代码中再加入一行判断语句这种形式就使得程序难以维护也违反了设计模式中的开闭原则 – 对扩展开放对修改关闭 代理模式 代理模式和适配器模式的核心区别就在于适配器模式的目的是为了适配不同的场景而代理模式的目的则是enhance即增强被代理的类如增加日志打印功能等Spring的AOP就是代理模式的典型代表Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关却为业务模块所共同调用的逻辑或责任例如事务处理、日志管理、权限控制等封装起来便于减少系统的重复代码降低模块间的耦合度并有利于未来的可拓展性和可维护性如果要代理的对象实现了某个接口那么Spring AOP会使用JDK Proxy去创建代理对象而对于没有实现接口的对象就无法使用 JDK Proxy 去进行代理了这时候Spring AOP会使用Cglib这时候Spring AOP会使用 Cglib 生成一个被代理对象的子类来作为代理如下图所示 当然你也可以使用 AspectJSpring AOP 已经集成了AspectJSpring AOP 属于运行时增强而 AspectJ 是编译时增强Spring AOP 基于代理(Proxying)而 AspectJ 基于字节码操作(Bytecode Manipulation)AspectJ 相比于 Spring AOP 功能更加强大但是 Spring AOP 相对来说更简单如果我们的切面比较少那么两者性能差异不大但是当切面太多的话最好选择 AspectJ它比 Spring AOP 快很多 单例模式 单例模式是Spring一个非常核心的功能Spring中的bean默认都是单例的这样可以尽最大程度保证对象的复用和线程安全Spring Bean也不止是单例的还有其他作用域如下 prototype每次获取都会创建一个新的 bean 实例也就是说连续 getBean() 两次得到的是不同的 Bean 实例request仅 Web 应用可用每一次 HTTP 请求都会产生一个新的 bean请求 bean该 bean 仅在当前 HTTP request 内有效session仅 Web 应用可用每一次来自新 session 的 HTTP 请求都会产生一个新的 bean会话 bean该 bean 仅在当前 HTTP session 内有效global-session仅 Web 应用可用每个 Web 应用在启动时创建一个 Bean应用 Bean该 bean 仅在当前应用启动时间内有效websocket仅 Web 应用可用每一次 WebSocket 会话产生一个新的 bean Spring 通过 ConcurrentHashMap 实现单例注册表的特殊方式实现单例模式Spring 实现单例的核心代码如下 观察者模式 观察者模式是一种对象行为型模式它表示的是一种对象与对象之间具有依赖关系当一个对象发生改变的时候这个对象所依赖的对象也会做出反应当一个对象的状态发生改变时所有依赖于它的对象都会得到通知被制动更新如Spring中listener的实现–ApplicationListenerSpring 事件驱动模型就是观察者模式很经典的一个应用Spring 事件驱动模型非常有用在很多场景都可以解耦我们的代码比如我们每次添加商品的时候都需要重新更新商品索引这个时候就可以利用观察者模式来解决这个问题Spring 事件驱动模型中的三种角色 事件角色 ApplicationEvent(org.springframework.context包下)充当事件的角色这是一个抽象类它继承了java.util.EventObject并实现了 java.io.Serializable 接口Spring 中默认存在以下事件他们都是对 ApplicationEvent 的实现(继承自ApplicationEvent) ContextStartedEventApplicationContext 启动后触发的事件ContextStoppedEventApplicationContext 停止后触发的事件ContextRefreshedEventApplicationContext 初始化或刷新完成后触发的事件ContextClosedEventApplicationContext 关闭后触发的事件事件监听者角色 ApplicationListener 充当了事件监听者角色它是一个接口里面只定义了一个 onApplicationEvent() 方法来处理ApplicationEventApplicationListener 接口类源码如下可以看出接口定义看出接口中的事件只要实现了 ApplicationEvent 就可以了所以在 Spring 中我们只要实现 ApplicationListener 接口实现 onApplicationEvent() 方法即可完成监听事件 事件发布者角色 ApplicationEventPublisher 充当了事件的发布者它也是一个接口 ApplicationEventPublisher 接口的 publishEvent() 这个方法在 AbstractApplicationContext 类中被实现阅读这个方法的实现你会发现实际上事件真正是通过 ApplicationEventMulticaster 来广播出去的具体内容过多就不在这里分析了Spring 的事件流程总结 1-定义一个事件实现一个继承自 ApplicationEvent并且写好相应的构造函数2-定义一个事件监听者实现 ApplicationListener 接口重写 onApplicationEvent() 方法3-使用事件发布者发布消息可以通过 ApplicationEventPublisher 的 publishEvent() 方法发布消息Example 当调用 DemoPublisher 的 publish() 方法的时候比如 demoPublisher.publish(你好)控制台就会打印出接收到的信息是你好 模板方法模式 用来解决代码重复的问题模板方法模式是一种行为设计模式它定义一个操作中的算法的骨架而将一些步骤延迟到子类中模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤的实现方式 Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类它们就使用到了模板模式一般情况下我们都是使用继承的方式来实现模板模式但是 Spring 并没有使用这种方式而是使用 Callback 模式与模板方法模式配合既达到了代码复用的效果同时增加了灵活性如果使用过Spring的事务管理相信一定对 TransactionTemplate 这个类不陌生而且顾名思义这个也是用到了模板方法它把事务操作按照3个固定步骤来写1. 执行业务逻辑2. 如果异常则回滚事务3. 否则提交事务如下代码所示 责任链模式 对于Spring MVC来说他会通过一系列的拦截器来处理请求执行前执行后以及结束的response核心的类是 handlerExecutionChain它封装了 HandlerAdapter 和一系列的过滤器对于执行前的处理来说DispatherServlet会先通过 handlerExecutionChain 获取所有的 HandlerInterceptor然后再执行处理逻辑如下代码所示
http://www.w-s-a.com/news/335836/

相关文章:

  • 关于建设门户网站的通知海曙区建设局网站
  • 韩国建设部网站温州企业网站制作
  • 苏州网站建设优化贵州网站建设lonwone
  • 网站建设与推广方案模板网站建设教程搭建浊贝湖南岚鸿给力
  • 网站建设内部下单流程图昆明网站制作公司
  • 手机网站焦点图在线外链推广
  • 做静态页面的网站中国建设银行河南省分行网站
  • 镇平县两学一做专题网站佛山家居网站全网营销
  • 做网站的需求wordpress图片怎么居中
  • 网站开发的技术流程图抖音seo排名优化软件
  • dedecms做电商网站得物app官方下载安装
  • python做网站教程微网站 举例
  • 百度喜欢什么样的网站如何引用网站上的资料做文献
  • 如何给网站添加网站地图军刀seo
  • 模板网站开发推广陈村大良网站建设
  • 建设工程网站单位名单广州微信网站建设效果
  • 网站开发选择框代码字节小程序开发教程
  • 杭州网站设计精选柚v米科技免费的简历制作
  • 网站域名 没有续费做外贸怎样上外国网站
  • 购物网站功能模块设计电子工程网站有哪些
  • 网站营销公司哪家好wordpress主题 破解主题
  • 做网站就是做服务中国效能建设网站
  • 唐河企业网站制作怎么样抖音seo排名软件哪个好
  • 做棋牌网站团队wordpress无限加载
  • 思创医惠网站建设微网站是手机网站吗
  • 宁波海曙网站建设市场营销管理
  • 网站被降权了怎么办做网站网页维护手机App开发
  • 营销型网站建设熊掌号tomcat 网站开发
  • 东莞网站建设seo广州 flash 网站
  • js网站评论框租房网站那些地图区域统计怎么做的