更多精彩文章。

《微服务不是全部,只是特定领域的子集》

《“分库分表" ?选型和流程要慎重,否则会失控》

这么多监控组件,总有一款适合你

《使用Netty,我们到底在开发些什么?》

《这可能是最中肯的Redis规范了》

《程序员画像,十年沉浮》

最有用系列:

《Linux生产环境上,最常用的一套“vim“技巧》

《Linux生产环境上,最常用的一套“Sed“技巧》

《Linux生产环境上,最常用的一套“AWK“技巧》

如果你认同这些知识,欢迎关注微信公众号小姐姐味道

ID:xjjdog

工厂方法模式

Spring中提供了FactoryBean接口,用于创建各种不同的Bean。



开发人员也可以自己实现该接口,常用于框架集成。比如SqlSessionFactoryBean就是如此。

模板方法模式

Spring针对JDBC,JMS,JPA等规范,都提供了相应的模板方法类,如JdbcTemplate,JmsTemplate, JpaTemplate。例如JdbcTemplate,它提供了很多常用的增加,删除,查询,修改方法模板。而JMSTemplate则提供了对于消息的发送,接收方法等。下面是JMSTemplate的部分方法图



代理模式

Spring中AOP,事务等都大量运用了代理模式。

观察者模式

Spring中提供了一种事件监听机制,即ApplicationListener,可以实现Spring容器内的事件监听。

主要是以下两个接口:发布消息



监听消息



单例模式

Spring默认的创建Bean的作用域就是单例,即每个Spring容器中只存在一个该类的实例。可以通过@Scope(“prototype”)来修改成prototype模式,prototype在设计模式中叫做原型模式,实际上,Spring中对于@Scope(“prototype”)标记的Bean的处理的确是原型模式。

原型模式

原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。

Spring中,如果一个类被标记为”prototype”,每一次请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)都会产生一个新的bean实例。
但是,Spring不能对一个prototype Bean的整个生命周期负责,容器在初始化、配置、装饰或者是装配完一个prototype实例后,将它交给客户端,随后就对该prototype实例不闻不问了。不管何种作用域,容器都会调用所有对象的初始化生命周期回调方法,而对prototype而言,任何配置好的析构生命周期回调方法都将不会被调用。清除prototype作用域的对象并释放任何prototype bean所持有的昂贵资源,都是客户端代码的职责。

职责链模式

在SpringMVC中,我们会经常使用一些拦截器(HandlerInterceptor),当存在多个拦截器的时候,所有的拦截器就构成了一条拦截器链。SpringMVC中使用HandlerExecutionChain类来将所有的拦截器组装在一起。
需要注意的是preHandle方法的返回值是boolean类型,用于决定是否需要下一个拦截器继续处理。

我的文章老地址:blog.leanote.com/post/medusa…



©著作权归作者所有:来自51CTO博客作者wx5ce7be7e7e4cc的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. Web应用优化 - 优化切页模式
  2. 【DB笔试面试737】在Oracle中,将单实例备份集恢复为rac数据库的步
  3. 在Oracle公有云中2小时供应EBS环境
  4. 云关系型数据库(Relational Database Service,RDS)
  5. 服务器负载均衡(Server Load Balance,SLB)
  6. 不一样的享元模式(设计模式四)
  7. nginx配置实例解释
  8. Oracle 12c新特性--LREG进程专门负责注册实例服务
  9. spring-boot-2.0.3启动源码篇四 - run方法(三)之createApplicati

随机推荐

  1. android AnimationSet
  2. List集合和LinkList的讲解
  3. Android(安卓)常驻进程保活自启动方案总
  4. 对Android应用进行单元测试
  5. Android的动画配置xml文件
  6. android获取系统环境变量
  7. android打开前置摄像头和后置摄像头
  8. 屏幕方向android:screenOrientation
  9. android 传感器
  10. Android官方架构组件:Lifecycle