java面试---Spring/Spring MVC

  1. 为什么要使用 spring?
    1.方便解耦,便于开发
    2.spring支持aop编程
    3.声明式事务的支持
    4.方便程序的测试,spring 对junit4支持
    5.方便集成各种优秀的框架
    6.降低javaEE API的使用难度

  2. 解释一下什么是 aop?
    AOP(Aspect-Oriented Programming)指一种程序设计范型,该范型以一种称为切面(aspect)的语言构造为基础,切面是一种新的模块化机制,用来描述分散在对象、类或方法中的横切关注点

  3. 解释一下什么是 ioc?
    IoC就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转

  4. spring 有哪些主要模块?
    Spring AOP、Spring ORM、Spring Core 、Spring Dao、Spring Context 、Spring Web 、Spring MVC

  5. spring 常用的注入方式有哪些?
    构造器注入、接口注入、方法参数注入

  6. spring 中的 bean 是线程安全的吗?
    Spring容器中的Bean是否线程安全,容器本身并没有提供Bean的线程安全策略。
    大部分的Spring bean并没有可变的状态,所以在某种程度上说Spring的单例bean是线程安全的。如果你的bean有多种状态的话,就需要自行保证线程安全。

  7. spring 支持几种 bean 的作用域?
    singleton:单例模式
    prototype:原型模式
    request:对于每次HTTP请求
    session:对于每次HTTP Session
    globalsession:每个全局的HTTP Session

  8. spring 自动装配 bean 有哪些方式?
    在 XML 文件中显式配置
    在 Java 的接口和类中实现配置
    隐式 Bean 的发现机制和自动装配原则

  9. spring 事务实现方式有哪些?
    (1)编程式事务管理对基于 POJO 的应用来说是唯一选择。我们需要在代码中调用beginTransaction()、commit()、rollback()等事务管理相关的方法,这就是编程式事务管理。
    (2)基于 TransactionProxyFactoryBean的声明式事务管理
    (3)基于 @Transactional 的声明式事务管理
    (4)基于Aspectj AOP配置事务

  10. 说一下 spring 的事务隔离?
    隔离性 (isolation):一个事务执行的过程中,不应该受到其他事务的干扰
    ISOLATION_DEFAULT:使用后端数据库默认的隔离级别。
    ISOLATION_READ_UNCOMMITTED:允许读取尚未提交的更改。可能导致脏读、幻影读或不可重复读。
    ISOLATION_READ_COMMITTED:允许从已经提交的并发事务读取。可防止脏读,但幻影读和不可重复读仍可能会发生。

  11. 说一下 spring mvc 运行流程?
    1.用户发送请求至前端控制器DispatcherServlet
    2.DispatcherServlet收到请求调用处理器映射器HandlerMapping。
    3.处理器映射器根据请求url找到具体的处理器,生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet。
    4.DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行HandlerAdapter处理一系列的操作,如:参数封装,数据格式转换,数据验证等操作
    5.执行处理器Handler(Controller,也叫页面控制器)。
    6.Handler执行完成返回ModelAndView
    7.HandlerAdapter将Handler执行结果ModelAndView返回到DispatcherServlet
    8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器
    9.ViewReslover解析后返回具体View
    10.DispatcherServlet对View进行渲染视图(即将模型数据model填充至视图中)。
    11.DispatcherServlet响应用户。

  12. spring mvc 有哪些组件?
    HandlerMapping、HandlerAdapter、HandlerExceptionResolver、ViewResolver、RequestToViewNameTranslator、LocalResolver、ThemeResolver、MultipartResolver、FlashMapManager

  13. @RequestMapping 的作用是什么?
    @RequestMapping 是一个用来处理请求地址映射的注解,可以作用在类上,代表该类的所有方法的父路径,作用在方法上,代表具体的请求路径.被该注解修饰的方法会将返回值当做跳转路径,当使用异步请求的时通常我们会加上@ResponseBody注解将返回内容加入到HTTP response Body中进行返回

  14. @Autowired 的作用是什么?
    @Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值