zoukankan      html  css  js  c++  java
  • Spring中bean的作用域与生命周期

    Spring中的bean

      组成应用程序的主体及由Spring IoC容器所管理的对象,被称之为bean。

      简单地讲,bean就是由IoC容器初始化、装配及管理的对象

      Spring中的bean默认都是单例的(scope="singleton"默认值)

      我们可以设置为多例(scope="prototype"

    bean的作用域

      当scope="singleton"时

        Singleton是单例类型,就是在创建起容器时就同时自动创建了一个bean的对象

        不管你是否使用,他都存在了,每次获取到的对象都是同一个对象

      当scope="prototype"时

        Prototype是原型类型,它在我们创建容器的时候并没有实例化

        而是当我们获取bean的时候才会去创建一个对象,而且我们每次获取到的对象都不是同一个对象

    bean的生命周期

      

      1、当scope=”singleton”,即默认情况下,会在启动容器时实例化。

      2、当scope=”prototype”时,容器会延迟初始化bean,Spring读取xml文件的时候,并不会立刻创建对象,

      而是在第一次请求该bean时才初始化Spring容器一旦把这个对象交给你之后,就不再管理这个对象了。

     面试题

      1.有哪些不同的IOC依赖注入方式

      直接的注入(seter)

      构造注入

      P命名标签注入

      往集合内注入(<constructor-ary></constructor-ary>)

      默认往域属性内注入(autowire="byType"与autowire="byName"

      2.java九大隐式对象有哪些

      request对象

      response对象

      session对象

      application对象

      out 对象

      pageContext 对象

      config 对象

      page 对象

      exception 对象

      3.数据库里的索引和约束是什么

      索引:指向表中数据的指针,把书比作数据,各个章节就相对于数据库中的表,而书的目录就是索引了。

      约束:是为了设计数据库的完整性,防止数据库存在不符合语义的数据、错误信息的输入和输出

      4.DAO的工作原理,能不能重载

      Dao接口就是Mapper接口。映射文件中的namespace的值;接口的方法名,就是映射文件中Mapper的Statement的id值;

      Mapper接口里的方法,是不能重载的,因为是使用 全限名+方法名 的保存和寻找策略

      5.Mybatis时如何进行分页的,原理是什么

      Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页。可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。

      原理:是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。

  • 相关阅读:
    总结jQuery选择器
    Responsive布局技巧
    学习资料
    大公司开源项目【转载】
    针对css3特性浏览器兼容 封装less
    手把手教你nginx/linux下如何增加网站
    又一枚神器:nginx
    http://www.howtocn.org/nginx
    nginx修改内核参数
    Nginx
  • 原文地址:https://www.cnblogs.com/whtt/p/11752891.html
Copyright © 2011-2022 走看看