spring用到的设计模式


spring面试题总结

1) 工厂模式
2) 单例模式:存储单例bean的一级缓存
3) 代理模式:AOP
4) 模板方法:容器刷新refresh()方法
5) 观察者模式:spring的事件驱动模型,
ApplicationEvent事件,
ContextStartedEvent 启动后触发的事件; ContextStoppedEvent  停止后触发的事件; ContextRefreshedEvent 初始化或刷新完成后触发的事件; ContextClosedEvent 关闭后触发的事    件
ApplicationListener事件监听者,ApplicationEventPublisher事件发布者,容器刷新最后,完成整个容器的初始化,发布BeanFactory容器刷新完成的事件

6) 适配器模式: 
springMVC中的HandlerAdapter (处理器适配器),handler(Controller,HttpRequestHandler,Servlet等)有多种实现方式,例如继承Controller的,基于注解控制器方式的,HttpRequestHandler方式的。由于实现方式不一样,调用方式就不确定了。如果正常编写调用,就需要使用多个if else判断instance of.
继承Controller方式所使用的适配器:SimpleControllerHandlerAdapter
HTTP请求处理器适配器:HttpRequestHandlerAdapter
注解方式(@Controller)的处理器适配器:RequestMappingHandlerAdapter7)策略模式
Spring框架的资源访问Resource接口。该接口提供了更强的资源访问能力,Spring 框架本身大量使用了 Resource 接口来访问底层资源。
Resource 接口主要提供了如下几个方法:
  ● getInputStream():定位并打开资源,返回资源对应的输入流。每次调用都返回新的输入流。调用者必须负责关闭输入流。
  ● exists():返回 Resource 所指向的资源是否存在。
  ● isOpen():返回资源文件是否打开,如果资源文件不能多次读取,每次读取结束应该显式关闭,以防止资源泄漏。
  ● getDescription():返回资源的描述信息,通常用于资源处理出错时输出该信息,通常是全限定文件名或实际 URL。
  ● getFile:返回资源对应的 File 对象。
  ● getURL:返回资源对应的 URL 对象。
Resource 接口本身没有提供访问任何底层资源的实现逻辑,针对不同的底层资源,Spring 将会提供不同的 Resource 实现类,不同的实现类负责不同的资源访问逻辑
Spring 为 Resource 接口提供了如下实现类:
  ● UrlResource:访问网络资源的实现类。
  ● ClassPathResource:访问类加载路径里资源的实现类。
  ● FileSystemResource:访问文件系统里资源的实现类。
  ● ServletContextResource:访问相对于 ServletContext 路径里的资源的实现类.
  ● InputStreamResource:访问输入流资源的实现类。
  ● ByteArrayResource:访问字节数组资源的实现类。
这些 Resource 实现类,针对不同的的底层资源,提供了相应的资源访问逻辑,并提供便捷的包装,以利于客户端程序的资源访问。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值