spring mvc相关的面试题
2018-11-18 本文已影响0人
天草二十六_简村人
1、springMVC工作原理
spring mvc工作原理.png
2、SpringMvc的核心入口类是什么?
DispatchServlet.java
3、SpingMvc 的控制类Controller是单例还是多例的?分别会导致什么问题?
单例,多线程下,Controller的成员变量会存在线程不安全的问题,优点是节省资源,速度快。
但是也不能设计成多例的,struts2就是多例的。更不能设计加同步让线程安全。
最佳实践是:
不要在controller中定义成员变量。
万一必须要定义一个非静态成员变量时候,则通过注解@Scope("prototype"),将其设置为多例模式。
4、参数传值的类型,如果既有对象,又有基本类型的情况,请求方法和参数该怎么处理?
@RequestBody?
比如
@RequestMapping("/createOrder")
public Order createOrder(OrderDto orderDto,
@RequestParam Long payApiId,
String userIp) throws BizException {
return null;
}
5、怎么样在方法里面得到Request, Session?
直接在方法的形参中声明request,SpringMvc就自动把request对象传入!