1.SpringMVC工作流程
- DispatcherServlet接受到用户请求
- 请求获取处理器映射器
- 处理器映射器找到具体处理器,返回handler
- DispatcherServlet根据处理器请求处理器适配器
- 适配器执行handler,得到ModelAndView
- 处理器适配器将ModelAndView返回到DispatcherServlet
- DispatcherServlet将ModelAndView传给视图解析器
- 视图解析器解析后返回具体的视图
- DispatcherServlet对视图进行渲染
- DispatcherServlet响应用户
2.你常用的SpringMVC注解有哪些
@RestController @ResponseBody+@Controller
@RequestParam
@RequestBody
@RequestMapping
@ResponseBody @返回结果是json格式
@PathVaribale
3.你对ioc的理解?
ioc容器帮我们管理组件之间的依赖关系,比如Service中需要使用dao,以前我们是直接在Service里面实例化dao对象的,这样当要替换dao实现的时候,就必须修改Service中的代码。有了ioc容器之后,只要在配置中修改,就可以替换Service中的dao限制,达到上下层解耦的目的。
4.你对aop的理解?
面向切面编程,为解耦而生
切面、切点、引入、目标对象、AOP代理、织入
是通过预编译和运行期动态代理的方式实现不修改源代码的情况下给程序动态统一添加功能的技术。
AOP技术利用一种“横切”的技术,将影响多个类的公共行为封装到一个可重用的模块中,称为切面。
所谓切面,就是与业务无关,却为业务模块所共同调用的逻辑,将其封装起来便于减少系统的重复代码,降低模块的耦合度。
利用AOP可以对业务逻辑的各个部分进行隔离,从而使业务逻辑各部分之间的耦合度降低
5.Mybatis中,#和$的区别?
底层使用preparestatement,会进行预编译,会自动拼接引号,防止了sql注入
$底层使用的是statement,引用参数是不做任何处理,直接将值拼接在sql语句中,存在sql注入问题
评论 (0)