Spring基本介绍与一些常见的面试题

一,Sping的配置文件
 放在容器中的组件 我们写在该配置文件中

根据自己需求取名,将spring所需的配置写在该文件当中。容器中放着具体的对象,也就是我们常说的ioc控制反转。
二,创建对象的形式:
1,new 2,反射 class.forName(包+类)  3,反序列化 4,克隆【浅拷贝和深拷贝】
bean的作用域:默认是单实例,默认scope=“singleton”
多实例scope=“prototype” 每次从容器中拿组件 默认容器都给一个新的对象
三,给容器中的组件赋值的几种形式:  
  1,set注入(主流)
  property name=“name” value=“张三”
  name:set后面的名字
  value:属性值
  2.构造注入(循环依赖)AB互相套娃
  <constructor-arg name="name" value="张三"/>
  3.设置方法
多态:接口 对象名=new 子类对象() 父类的引用不能调用子类特有的属性和方法(想用就强转) init-method:指定初始化方法 destroy-method:指定销毁方法
  4.注解开发
 @Component(Value=id):标注在实例化的类上
        @Service:service层 服务层 具体业务逻辑的层
        @Repository:DAO层 连接数据库的层
        @Controller:控制层
        @Value
        @Scope
四,Spring面试题:
1,IOC容器的初始化过程
              
2,给组件赋值有几种形式?构造注入的弊端是什么?set注入方式也会有循环依赖 如何解决?
   三级缓存解决的循环依赖 必须要用三级缓存吗?二级缓存就能解决 为什么需要三级?
    AOP 代理对象
              
3,bean的作用域?
              
4,bean的生命周期?
             
 5,Spring中的Bean是线程安全的吗?
      多个线程共享同一个资源时并且对资源进行修改会出现线程安全问题 单实例:有线程安全问题 对bean中的成员变量进行查询 没有线程安全问题 对bean的成员变量进行修改 有线程安全 1,多实例:没有线程安全问题 每个线程拿到自己的组件 2,ThreadLocal解决问题 在类中定义ThreadLocal变量 并且将要修改的变量放在ThreadLocal中 ThreadLocal本身具有隔离性           
 6,Beanfactory和FactoryBean的区别?
   Beanfactory 帮我们生产组件的工厂 工厂模式:实例工厂 静态工厂
   FactoryBean 通过工厂模式生产的组件
 7,Beanfactory和ApplicationContext的区别?
    Beanfactory 帮我们生产组件的工厂
    ApplicationContext 放组件的位置
  bean的生命周期
  
    单实例 先调用构造方法 ======》postProcessBeforeInitialization======》初始化方法=======》postProcessAfterInitialization===========》容器关闭==========》销毁方法
    多实例 先调用构造方法 ======》postProcessBeforeInitialization======》初始化方法=======》postProcessAfterInitialization===========》容器关闭不会调用销毁方法
    通过实现beanPostProcessor接口 实现对bean的创建过程的操作
  懒加载:默认情况下 单实例 是在容器创建完成后 容器中就有了该对象/组件/bean
                   多实例:容器创建完成后 不会创建组件 获取的时候进行创建
                   lazy-init=“true” 懒加载 容器初始化完成 不会创建对象
                   在获取对象时 才会创建对象
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值