Controller——>service——>serviceImpl——>dao,开发的时候建议反方向编程。
- 用户发起请求,发到DispatcherServlet前端控制器
- 前端控制器通过url请求handlerMapping处理器映射器查找handler
- handlerMapping处理器映射器返回handler给前端控制器DispatcherServlet
- 前端控制器DispatcherServlet请求handlerAdapter执行handler
- Handler执行完成返回ModelAndView。ModelAndView:springmvc的一个对象,对Model和view进行封装
- 适配器将ModelAndView返回给DispatcherServlet
- DispatcherServlet调用视图解析器进行视图解析,解析后生成view
- ViewResolver视图解析器给前端控制器返回view
- DispatcherServlet调用view的渲染视图的方法,将模型数据填充到request域
- DispatcherServlet向用户响应结果(jsp页面、json数据。。。。)
熟悉dao、service、controller
Controller编写handler
再handler调用service接口,返回ModelAndView。注入serivece(@autowired),调用service接口中的方法。
Service中存放service接口、service实现类可以建两个包进行分类
Service接口
ServiceImpl实现类,实现service接口。注入dao,调用dao接口,通过mapper自动代理,执行mapper.xml中的statement语句。
Dao包下存放接口、以及对应的xml文件,命名一样如orders.java,orders.xml
- Orders.Xml文件中的namespace的是orders.java的限定名,一个orders.java中的接口对应orders.xml的一个statement语句(mapper自动生成代理对象需要遵循的规则)
Orders.xml中的statement |
Orders.java中的接口 |
Id |
方法名 |
parameterType |
形参类型 |
resultType |
返回值类型 |
编写sql语句(作为理解) |
调用statement中的sql |