Spring,SpringMVC,Mybatis的整合以及使用梳理
- 肯定是在数据库设计先搞好
- 那也是将Maven项目创建好,导入需要的依赖即可
- 开始整合
- 编写好Pojo后,先开始从Dao层开始整合
- 首先一个Mapper接口对应一个同名的Mapper.xml文件,一个方法绑定一条sql语句
- 接着编写Mybatis-config.xml(核心配置):setting,typealias,Mapper等,但是数据源(dataSource)等对象交由Spring来管理,
- 接下来Service层本质就是调用Dao层的接口,那么如何拿到Mapper接口?答:service层的实现类里设置一个属性,通过自动装配从Spring的IOC容器当中去拿/或者手动装配。那么Ioc容器中的Mapper接口是如何来的?
- 接下来解决上述疑问:配置spring-dao.xml文件,其作用是将Dao层的对象全部托管于Spring存放在其Ioc容器当中,例如:通过扫描包的方式将Mapper接口注册到Ioc容器当中,来完成Service层对于Dao层的一个调用,以及SqlSessionFactory托管于Spring并将为其注入属性连接mybatis-config.xml文件。使其能够生产对应数据库sqlsession的工厂,便于底层生产sqlsession然后调用getMapper()方法
- 接下来就是对Spring-service.xml文件编写,配置事务管理
- 然后就是Controller层整合,首先编写Web.xml配置DispatcherServlet(核心类)拦截所有请求,以及加载总的配置文件,以及过滤器以及一些其他的设置,然后编写配置spring-mvc.xml配置文件 ,如果使用Controller层使用注解那么开启注解启动器,以及通过默认处理器代替HandleAdapter和HandlerMapping,然后就是配置一个视图解析器ViewResolver
- 然后将三个spring-XXX的配置文件导入到一个applicationContext.xml配置文件中(整合为一个)
- 大致思路就是这样,现在所学的理解只能到此,以后再深入理解原理
留下未解问题:
1.配置sqlsessionfactory后,为什么通过一个扫描包就可以使得Mapper接口注册到Spring容器?
2.sqlsession是什么时候执行的呢?
3.DispatcherServlet为什么加载总的配置文件,加载的目的又是什么?
4.为什么扫描包后才能使用注解开发?