乐趣区

JAVA面试题25

    本文首发于 cartoon 的博客
     转载请注明出处:https://cartoonyu.github.io/c…

  • Spring 自动装配 Bean 有哪些方式?

    • no:不使用自动装配
    • byName:通过属性名称 name 自动装配
    • byType:通过属性类型装配
    • constructor:与 byType 类似,但会使用构造参数
    • autodetect:首先使用 constructor,无效后使用 byType
    • 本人偏向使用 java 自带注释 @Resource,在重构代码会比较方便
  • Spring 事务实现方式有哪些?

    • 编程式事务管理。通过手动控制事务的开启与关闭实现。
    • 使用 AOP 配置事务
    • 基于 TransactionProxyFactoryBean 的声明式事务管理
    • 基于 @Transactional 的声明式事务管理(推荐)
  • 说一下 Spring 的事务隔离?

    • 事务是一系列操作,结果只有两种

      • 操作完成
      • 操作异常,回滚造成全部操作被撤销
    • 特性

      • 原子性。系统将事务作为一个整体。
      • 一致性。事务执行之前与执行之后系统的状态是不变的。
      • 隔离性。各事务所使用数据都是确定的值。
      • 持久性。事务操作结果被系统保存下来。
    • 隔离级别

      • read uncommited: 读取事务未提交数据
      • read commited: 只能读取已提交数据
      • repeatable read: 允许读取同一条记录
      • serializable: 事务操作被顺序执行
  • 说一下 Spring MVC 运行流程?

    • 网络请求首先到达 DispatcherServlet,由 DispatcherServlet 分发到 Controller
    • 在分发到 Controller 前,可能存在 Filter 过滤
    • Controller 根据 url 响应分发请求,并调用 Service 处理请求
    • Service 进行业务逻辑处理,并在需要数据库操作时调用 Dao 进行操作
    • Service 得到 Dao 返回结果,进行处理后返回到 Controller
    • Controller 将 Service 返回结果进行处理,并将结果包装成视图返回到 DispatcherServlet
    • DispatcherServlet 将视图传递到视图渲染器渲染
    • 视图渲染器渲染视图,返回页面到前台
退出移动版