1. AOP动态代理策略?
- 如果目标对象实现了接口,默认采用JDK动态代理。可以强制转为CgLib实现AOP
- 如果没有实现接口,采用CgLib进行动态代理
2. 什么是MVC框架?
- MVC全名是Model View Controller ,是模型(model)、视图(view)、控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面以及在用户交互的同时,不需要重新编写业务逻辑
- MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中
3. 什么是Spring MVC?
- Spring MVC是Spring框架的一个模块,是一个基于MVC的框架
4. SpringMVC的核心?
- DispatcherServlet(前端控制器,也叫中央控制器)
5. SpringMVC的几个组件
- DispatherServlet:前端控制器,也叫中央控制器。相关组件都是它来调度
- HandlerMappering:处理器映射器,根据URL路径映射到不同的Handler
- HandlerAdapter:处理器适配器,按照HanderAdapter的规则去执行Handler
- Handler:处理器,有我们自己根据业务开发
- ViewResolver:视图解析器,把逻辑视图解析成具体的视图
- View:一个接口,它的实现支持不同的视图类型(freeMaker,JSP等)
6. SpringMVC工作流程
- 用户请求旅程的第一站是DispatcherServlet
- 收到请求后,DispatcherServlet调用HandlerMappering,获取对应的Handler
- 如果有拦截器一并返回
- 拿到Hander后,找到HandlerAdapter,通过它来访问Handler,并执行处理器
- 执行Handler的逻辑
- Handler会返回一个ModelAndView对象给DispatcherServlet
- 将获得到的ModelAndView对象返回给DispatcherServlet
- 请求ViewResolver解析视图,根据逻辑视图名解析成真正的View
- 返回View给DispatcherServlet
- DispatcherServlet对View进行渲染视图
- DispatcherServlet响应用户
7. SpringMVC优点?
- 具有Spring的特性
- 可以支持多种视图(jsp、freemaker)等
- 配置方便
- 非侵入
- 分层更清晰,利于团队开发和代码维护,可读性好
8. 单例bean是线程安全的吗?
- 不是。具体线程问题需要开发人员来处理
9. Spring从哪两个角度实现自动装配?
- 组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean
- 自动装配(autowiring):Spring自动满足bean之间的依赖
10. 自动装配有几种方式?分别是什么?
- no:默认设置,表示没有自动装配
- byName:根据名称装配
- byType:根据类型装配
- constructor:把与Bean的构造器入参具有相同类型的其它Bean自动装配到Bean构造器的对应入参中
- autodetect:先尝试constructor装配,失败再尝试byType方式
- default:由上级标签的default-autowire属性确定
上一篇:Java面试手册V2.0+突击V3.0知识点整理(三十) 附封面图片😍
下一篇:Java面试手册V2.0+突击V3.0知识点整理(三十二) 附封面图片😍
如果觉得封面图片还行,请顺手点个赞😍