Spring MVC 执行流程

SpringMVC 执行流程主要由四大组件协同完成,分别是:DispatcherServletHandlerMappingHandlerAdapterViewResolver

这些组件对开发者来说是不可见的,开发者只需要在 Controller(Handler)层完成对请求业务的处理。

阅读更多

Servlet 是单例还是多例?

面试中经常会被问到:Servlet 是单例还是多例,这是一个很基础的问题,主要考察面试者的基础是否扎实。还可以关联出一串更深层的问题来考察面试者的知识深度。

问:Servlet是单例还是多例?
答:单例
问:单例情况下在多个请求时是怎么处理的?
答:多线程,为每个请求分配一条线程
问:单例在并发情况下线程是否安全?
答:不安全
问:有没有办法解决?
答:有。。。。如果回答可以使用 ThreadLocal来隔离每个请求的线程是最好的。接着更深的坑
问:ThreadLocal 的原理是什么?怎么实现的?
答:。。。。答不上来 OR 回答上来了。后面正等着呢
问:使用ThreadLocal与同步代码块,那个优劣?
问:多线程。。。。并发。。。。。
答:。。。。死穴。。。。OVER

阅读更多

Java基础:JavaWeb中的VO,DAO,PO,DTO,BO,DO解释

VO、DTO、DAO、PO、BO、DO:实际开发可能各种O的使用也没有明确的界线,有时并没有分的很表楚。
各种O的分离更多是从设计层面上来理解,即数据经过各个层并与之对应的关系称呼。
当然理解了各种O的用途,在理解一些严谨的代码和数据流程是非常方便的。

阅读更多

Mybatis:事务管理机制详解

事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行。
Mybatis的事务管理分为两种形式:JDBCMANAGED

阅读更多

MyBatis:缓存机制详解

Mybatis查询缓存分为一级缓存和二级缓存,一级缓存属于sqlsession级别,二级缓存属于Mapper级别。
Mybatis通过缓存机制可减轻直接访问数据库的压力,提高数据库性能。

阅读更多

MyBatis:介绍及执行流程

Mybatis介绍

  • Mybatisapache 下的一个开源项目,是对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建 connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。
  • Mybatis 通过xml或注解的方式将要执行的各种statement(statement、preparedStatemnt、CallableStatement)配置起来,并通过 java 对象和 statement 中的sql 进行映射生成最终执行的 sql 语句,最后由 mybatis 框架执行 sql 并将结果映射成 java 对象并返回。

    MyBatis架构框架图

阅读更多