• 金尊国际平台
  • 金尊娱乐平台官网
  • 新闻资讯
  • 厂房设备
  • 人才招聘
  • 技术支持
  • 联系方式
  • 访客留言
  • 您当前的位置:首页 > 技术支持

    spring面试题及答案解析

    时间:2018-09-07 22:01:07  来源:本站  作者:

      这一篇说一些Java最流行的框架spring的一些知识点。大家注意到了没有,我不说面试题,改用知识点了。因为后台有小伙伴留言说有很多人不准备面试,可不可以发一些学习的知识点。

      其实面试所问的往往是企业期望技术人掌握的东西,这些不一定只是为了去面试看,通过看这些问题反省自己对某一块知识的掌握也是很好的。但小编还是想尽量满足大部分小伙伴的想法,所以以后发的面试题一律改称知识点。以下是知识点正文:

      Spring IoC容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一对象。Singleton作用域是Spring中的缺省作用域。

      每次通过Spring容器获取prototype定义的bean时,容器都将创建一个新的Bean实例,每个Bean实例都有自己的属性和状态,而singleton全局只有一个对象。

      在一次Http请求中,容器会返回该Bean的同一实例。而对不同的Http请求则会产生新的Bean,而且该bean仅在当前Http Request内有效。

      在一次Http Session中,容器会返回该Bean的同一实例。而对不同的Session请求则会创建新的实例,该bean实例仅在当前Session内有效。

      如果这个Bean在Spring配置文件中配置了init-method属性会自动调用其配置的初始化方法。

      当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean接口,会调用其实现的destroy方法。

      最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法。

      设值注入与传统的JavaBean的写法更相似,程序员更容易理解、接受,通过setter方式设定依赖关系显得更加直观、明显;

      对于复杂的依赖关系,如果采用构造注入,会导致构造器过于臃肿,难以阅读。Spring在创建Bean实例时,需要同时实例化其依赖的全部实例,因而会产生浪费。而使用设置注入,则避免这下问题;

      对于依赖关系无须变化的Bean,构造注入更有用处,因为没有setter方法,所有的依赖关系全部在构造器内设定,因此,不用担心后续代码对依赖关系的破坏。

      构造注入使依赖关系只能在构造器中设定,则只有组件的创建者才能改变组件的依赖关系。对组件的调用者而言,组件内部的依赖关系完全透明,更符合高内聚的原则。

      设值注入不会重写构造方法的值。如果我们对同一个变量同时使用了构造方法注入又使用了设置方法注入的话,那么构造方法将不能覆盖由设值方法注入的值。

      建议采用以设值注入为主,构造注入为辅的注入策略。对于依赖关系无须变化的注入,尽量采用构造注入;而其他的依赖关系的注入,则考虑采用set注入。

      BeanFactory是Spring中最底层的接口,提供了最简单的容器的功能,只提供了实例化对象和拿对象的功能。而ApplicationContext是Spring的一个更高级的容器,提供了更多的有用的功能。

      ApplicationContext提供的额外的功能:国际化的功能、消息发送、响应机制、统一加载资源的功能、强大的事件机制、对Web应用的支持等等。

      加载方式的区别:BeanFactory采用的是延迟加载的形式来注入Bean;ApplicationContext则相反的,它是在Ioc启动时就一次性创建所有的Bean,好处是可以马上发现Spring配置文件中的错误,坏处是造成浪费。

    来顶一下
    推荐资讯
    相关文章
      无相关信息
    栏目更新
    栏目热门