Spring常见面试题总结

什么是spring

  • spring是一个java企业级应用的开源框架。
  • spring主要用来开发java应用
  • spring框架目标是为了简化java企业级应用开发

对于spring的一些理解

  • spring是一个开源框架,主要是为简化企业级应用开发而生

  • spring是一个IOC和AOP容器框架。

  • 控制反转(IOC):把程序中所有的javabean对象的创建、初始化、管理、分配、维护、销毁等相关的所有工作都交给spring容器

    简单的说就是 javabean的控制权交给spring容器来管理

  • 依赖注入(DI):程序运行中所依赖的javabean对象由spring容器动态的注入

  • 面向切面编程(AOP):将一个个对象某些类似的方面横向抽象成一个切面,对这个切面进行一些如权限验证,事物管理,记录日志等公用操作处理的过程就是面向切面编程的思想。

  • spring中,所有管理的都是java Bean对象,而BeanFactory和ApplicationContext就是Spring框架的IOC容器,现在一般使用ApplicationContext,它包括了BeanFactory的作用,还进行了更多的扩展

使用Spring框架的好处有哪些?

  • 1、spring是轻量级的框架,占用内存少
  • 2、spring通过控制反转降低耦合度
  • 3、spring支持面向切面编程,主流业务和辅助功能进行分离开发 在运行时通过动态代理的方式显示主流业务和辅助功能的整合
  • 4、spring包含并管理应用中对象的生命周期和配置
  • 5、spring提供一个持续的事务管理接口,可扩展到本地事务和全局事务

spring组成模块(核心模块)

  • SpringCore :核心容器
  • SpringContext:应用上下文
  • SpringAOP:面向切面编程
  • SpringDao:JDBC和Dao模块
  • SpringORM:对象关系映射
  • SpringWeb:web模块
  • SpringMVC: mvc模块

Spring框架使用的设计模式有哪些

  • 单例模式
  • 原型模式
  • 工厂模式
  • 适配器模式
  • 包装模式
  • 代理模式
  • 观察者模式
  • 策略模式
  • 模板模式

什么是Spring的MVC框架?

  • 是Spring框架的一个模块(属于控制层 代替Servlet)

  • 使用mvc的设计模式对web资源进行分层

  • mvc: 实现model和view的解耦:数据显示和数据处理分层

  • Spring的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离

  • 允许以声明的方式把请求参数和业务对象绑定

SpringMVC常用到的注解,作用,原理

  • @Controller注解
    • 用于指定Spring类的实例,是一个控制器
    • 使用@Controller注解的类不需要继承特定的父类或者实现特定的接口
    • @Controller注解注解的控制器可以同时支持处理多个请求动作,使程序开发变的更加灵活
  • @RequestParam注解
    • 用于将指定的请求参数赋值给方法中的形参
    • name属性该属性的类型是String类型,它可以指定请求头绑定的名称
    • value属性该属性的类型是String类型,它可以设置是name属性的别名;
    • required属性该属性的类型是boolean类型,它可以设置指定参数是否必须绑定;
    • defalutValue属性该属性的类型是String类型,它可以设置如果没有传递参数可以使用默认值。
  • @PathVaribale注解
    • 可以非常方便的获得请求url中的动态参数
    • 只支持一个属性value,类型String,表示绑定的名称,如果省略则默认绑定同名参数。

在Spring中,有几种配置Bean的方式

  • 基于XML的配置
  • 基于注解的配置
  • 基于java的配置

SpringBean的生命周期

  • 1、实例化Bean

    • 对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调createBean进行实例化
    • 对于ApplicationContext容器,当容器启动结束后,通过获取BeanDefinition对象中的信息,实例化所有的bean。
  • 2、设置对象属性(依赖注入)

    • Spring根据BeanDefinition中的信息 以及 通过BeanWrapper提供的设置属性的接口完成依赖注入。
  • 3、处理Aware接口

    • Spring会检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给Bean

    • Spring会检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给Bean

  • 4、初始化

    • 如果Bean在Spring配置文件中配置了 init-method 属性,则会自动调用其配置的初始化方法。
  • 5 、创建

    • 如果这个Bean实现了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj,String s)方法;
  • 6、服务

    • 当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy()方法;
  • 7、销毁

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

什么是SpringMVC框架的控制器

  • 控制器提供一个访问应用程序的行为
  • 控制器解析用户输入并将其转换为一个由视图呈现给用户的模型

SpringDao的作用

  • SpringDao使得JDBC这样的数据访问技术更容易以一种统一的方式工作
  • 方便用户在持久性技术之间切换
  • 允许程序员在编码时,无需考虑捕获每种技术不同的异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值