springmvc的九大内置对象
- HandlerMapping:web项目下java代码分为三大层,controller、service、Mapper三层。与浏览器直接进行交互的为controller层,设置请求路径,接受请求返回请求,前段在访问后端接口的时候,就是使用handlermapping内置对象,进行请求路径映射实现访问接口操作。
- HandlerAdapter:handler适配器,相当与一个路由,完成请求路径到对应controller类的映射。请求控制类有不同的请求方法,post、get、put、delete,也需要使用适配器进行匹配。
- HandlerExceptionResolver:统一的异常处理
- ViewResolver:找到对应的视图路径,进行数据回显。
- RequestToViewNameTranslator:有些controller类没有对应的返回值,这个内置对象可以记录对应请求的视图路径,用于响应成功后进行跳转。
- LocaleResoler:从request中解析出Locale。Locale表示一个区域,对于不同区域的用户,显示不同的结果,这就是iT8n
- ThemeResolver
- MutipartResolver:处理上传请求,将普通的request封装成MultipartHttpServletRequest
- FlashMapManager
spring中的单例bean是否线程安全
spring是怎么简化开发的
- 基于切面编程(AOP),@Transactional添加在业务处理层,让他被代理bean进行管理,对于增删改操作进行事务回滚操作。这是AOP最根本的操作。
- 基于POJO轻量级:把对象交给IOC容器去管理,减少用户参与管理类的生成。
- 基于依赖注入和面向接口: IOC容器的使用,实现从用户控制类的生成和赋值变为***ioc容器(spring)***对类的生成和赋值,减少不必要的类的生成,减小耦合度。
spring支持的bean作用域有哪些
- singleton:单例bean,在ioc容器中独一存在,名字为类名开头小写,多次调用都为同一个对象。
- prototype:对于同一个注入ioc容器的对象,在多次调用的时候,每次返回的都是一个新的实例。
- request:应用于WebApplicationContext环境,进行一次request请求时,创建一个新的实例。
- session:同一个session公用一个bean实例,不同session使用不同的实例。
- global-session:全球session,全局变量的意思,所以对于任一个session都会创建相同类型的bean实例。
spring的starter
spring中使用了哪些设计模式
- 工厂模式
- 模板模式
- 代理模式
- 策略模式
- 单例模式
- 观察者模式
- 适配器模式
- 装饰者模式