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

网站建设,h5,小程序众安保险

网站建设,h5,小程序,众安保险,长沙优化推广外包,杭州保洁公司保洁服务一.区别 BeanFactory和ApplicationContext是Spring的两大核心接口#xff0c;都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。 1.依赖关系 BeanFactory#xff1a;是Spring里面最底层的接口#xff0c;包含了各种Bean的定义#xff0c;读取bean…一.区别 BeanFactory和ApplicationContext是Spring的两大核心接口都可以当做Spring的容器。其中ApplicationContext是BeanFactory的子接口。 1.依赖关系 BeanFactory是Spring里面最底层的接口包含了各种Bean的定义读取bean配置文档管理bean的加载、实例化控制bean的生命周期维护bean之间的依赖关系。ApplicationContext接口作为BeanFactory的派生除了提供BeanFactory所具有的功能外还提供了更完整的框架功能 继承MessageSource因此支持国际化。统一的资源文件访问方式。提供在监听器中注册bean的事件。同时加载多个配置文件。载入多个有继承关系上下文 使得每一个上下文都专注于一个特定的层次比如应用的web层。 2.加载方式 BeanFactroy采用的是延迟加载形式来注入Bean的即只有在使用到某个Bean时(调用getBean())才对该Bean进行加载实例化。这样我们就不能发现一些存在的Spring的配置问题。如果Bean的某一个属性没有注入BeanFacotry加载后直至第一次使用调用getBean方法才会抛出异常。ApplicationContext它是在容器启动时一次性创建了所有的Bean。这样在容器启动时我们就可以发现Spring中存在的配置错误这样有利于检查所依赖属性是否注入。 ApplicationContext启动后预载入所有的单实例Bean通过预载入单实例bean ,确保当你需要的时候你就不用等待因为它们已经创建好了相对于基本的BeanFactoryApplicationContext 唯一的不足是占用内存空间。当应用程序配置Bean较多时程序启动较慢。 3.创建方式 BeanFactory通常以编程的方式被创建 ApplicationContext还能以声明的方式创建如使用ContextLoader。 4.注册方式 BeanFactory和ApplicationContext都支持BeanPostProcessor、BeanFactoryPostProcessor的使用但两者之间的区别是BeanFactory需要手动注册而ApplicationContext则是自动注册。 二.关系 1.“低级容器”与“高级容器” Spring 作者 Rod Johnson 设计了两个接口用以表示容器; BeanFactoryApplicationContext BeanFactory 简单粗暴可以理解为就是个 HashMapKey 是 BeanNameValue 是 Bean 实例。通常只提供注册put获取get这两个功能。我们可以称之为 “低级容器” ApplicationContext 可以称之为 “高级容器”。因为他比 BeanFactory 多了更多的功能。他继承了多个接口。因此具备了更多的功能。例如资源的获取支持多种消息例如 JSP tag 的支持对 BeanFactory 多了工具级别的支持等待。所以你看他的名字已经不是 BeanFactory 之类的工厂了而是 “应用上下文” 代表着整个大容器的所有功能。该接口定义了一个 refresh 方法此方法是所有阅读 Spring 源码的人的最熟悉的方法用于刷新整个容器即重新加载/刷新所有的bean。 2.关系梳理 使用ClassPathXmlApplicationContext 类来展示整个容器的层级 UML 关系 图片解释 最上面的是 BeanFactory下面的 3 个绿色的都是功能扩展接口 看下面的隶属 ApplicationContext 粉红色的 “高级容器”依赖着 “低级容器”这里说的是依赖不是继承哦。他依赖着 “低级容器” 的 getBean 功能。而高级容器有更多的功能支持不同的信息源头可以访问文件资源支持应用事件Observer 模式。 通常用户看到的就是 “高级容器”。 但 BeanFactory 也非常够用啦左边灰色区域的是 “低级容器”只负载加载 Bean获取 Bean。容器其他的高级功能是没有的。例如上图画的 refresh 刷新 Bean 工厂所有配置生命周期事件回调等。 3.小结 IoC 在 Spring里只需要低级容器就可以实现2 个步骤 加载配置文件解析成 BeanDefinition 放在 Map 里。调用 getBean 的时候从 BeanDefinition 所属的 Map 里拿出Class 对象进行实例化同时如果有依赖关系将递归调用 getBean 方法 —— 完成依赖注入。 上面就是 Spring 低级容器BeanFactory的 IoC。 至于高级容器 ApplicationContext他包含了低级容器的功能当他执行refresh 模板方法的时候将刷新整个容器的 Bean。同时其作为高级容器包含了太多的功能。一句话他不仅仅是 IoC。他支持不同信息源头支持BeanFactory 工具类支持层级容器支持访问文件资源支持事件发布通知支持接口回调等等。 三.ApplicationContext通常的实现 FileSystemXmlApplicationContext 此容器从一个XML文件中加载beans的定义XML Bean 配置文件的全路径名必须提供给它的构造函数。ClassPathXmlApplicationContext此容器也从一个XML文件中加载beans的定义这里你需要正确设置classpath因为这个容器将在classpath里找bean配置。WebXmlApplicationContext此容器加载一个XML文件此文件定义了一个WEB应用的所有bean。
http://www.pierceye.com/news/216366/

相关文章:

  • 大连网站建设资讯网站seo如何优化
  • 手表网站建设策划西地那非片怎么服用最佳
  • 常德网站设计英文版网站怎么做
  • 权威网站建设网站的工具
  • php手机网站模板厦门网站设计建设
  • 焦作集团网站建设做食品网站需要什么资质
  • 西北电力建设甘肃工程公司网站90设计电商模板
  • 内蒙古网站设计推广网站注册赚佣金
  • 医药类网站建设评价wordpress微信支付模板
  • 如何查看网站空间商手机服务器下载安装
  • 北京响应式网站建设报价英文版网站案例
  • 做爰全过程免费的视频99网站做h5单页的网站
  • 怎么才能百度做网站海外直播
  • 响应式企业网站开发所用的平台酷炫网站首页
  • 西安网站建设全包大发 wordpress
  • html5 网站开发定制做公司网站好处
  • 建站网站教程网站建设工程师职责说明书
  • 新云网站模版宠物网站开发
  • 网站建设面授班网站备案回访电话号码
  • 阿里有做网站网站建设费是宣传费用吗
  • 点广告挣钱网站有哪些网站的建设与预算
  • 佛山新网站建设详细内容手机软件公司
  • 网站建设美词原创怎样建设一个能上传数据的网站
  • 网站建设网站营销做APP必须要有网站么
  • 易企建站咖啡公司网站建设策划书
  • wordpress 不能查看站点网站建设公司软件开
  • 网站文章seoftp搭建wordpress
  • 济宁企业做网站受欢迎的常州做网站
  • 我有域名有服务器怎么建设网站凡科官网app下载
  • 深圳保障性住房可以买卖吗襄樊seo排名