Spring,SpringMVC,MyBatis等各大框架在今天被我们广泛使用,那他们的运行流程你真的了解吗?

1、Spring

1、用户发送请求至前端控制器DispatcherServlet,DispatcherServlet是spring项目的入口;
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器;
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet;
4、DispatcherServlet调用HandlerAdapter处理器适配器;
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器);
6、Controller执行完成返回ModelAndView;
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet;
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器;
9、ViewReslover解析后返回具体View;
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。

2、SpringMVC

1.用户发送请求到DispatchServlet;
2.DispatchServlet根据请求路径查询具体的Handler;
3.HandlerMapping返回一个HandlerExcutionChain给DispatchServlet
 HandlerExcutionChain:Handler和Interceptor集合;
4.DispatchServlet调用HandlerAdapter适配器;
5.HandlerAdapter调用具体的Handler处理业务;
6.Handler处理结束返回一个具体的ModelAndView给适配器
ModelAndView:model–>数据模型,view–>视图名称;
7.适配器将ModelAndView给DispatchServlet;
8.DispatchServlet把视图名称给ViewResolver视图解析器;
9.ViewResolver返回一个具体的视图给DispatchServlet;
10.渲染视图;
11.展示给用户。

3、MyBatis

1、通过Resources.getResourceAsReader(“mybatis.xml”)读取MyBatis配置文件得到cfx,可以连接数据库的相关信息;
2、通过new SqlSessionFactoryBuilder().build(cfx)获取SqlSessionFactory;
3、通过sessionFactory.openSession()取得SqlSession;
4、通过session.getMapper(UserMapper.class)取得userDao对象;
5、通过userDao对象进行持久层操作;
6、通过session.commit()提交事务;
7、session.close()关闭会话对象;
8、cfx.close()关闭工厂对象。

4、Hibernate

1、通过Configuration().configure()读取并解析Hibernate.cfg.xml核心配置文件;
2、由Hibernate.cfg.xml中的读取并解析映射信息;
3、通过config.buildSessionFactory()创建SessionFactory;
4、sessionFactory.openSession()打开session;
5、session.beginTransaction()创建事务transaction;
6、持久化操作;
7、session.getTransaction().commit()提交事务;
8、关闭session;
9、关闭SessionFactory。

猜你喜欢

转载自blog.csdn.net/weixin_41656377/article/details/103558052