发表于: 2016-07-29 09:12:17
5 2259
【完成工作】
Springmvc+mybatis
将springmvc的基础上,加上mybatis就可以在浏览器上访问数据库了。所以工程只需要在前文的工程上加上mybatis的配置文件就妥妥的。
源码链接: https://pan.baidu.com/s/1sl7YUuD
工程结构如下:
1. jar包
(1) Mybatis中所需jar包;
(2) spring-framework-3.2.0.RELEASE(带spring-web-mvc模块)
(3) mybatis-spring-1.2.2.jar
2. 配置web.xml
本例中用到了@Autowired注解自动注入bean,所以需要自动生成spring容器加载spring配置文件。<context-param>标签为自动加载spring配置文件的参数。
PS: <url-pattern>/</url-pattern> dispatcherServlet的url不能配成/*,或者报错。
3. 配置SqlMapConfig.xml、StudentMapper.xml和开发dao(与前文一致,不再赘述)。
如果采用dao注解开发,SqlMapconfig.xml和StudentMapper.xml都可以省略不写。只需要在dao中标注注解。
MapperScannerConfigurer会扫描到该dao并生成动态代理对象。
4. 配置ApplicationContext.xml
5. 开发service和serviceImpl
6. 开发controller(注解开发)
7. 启动服务器用postman的get方法访问
妥妥滴。
【遇到问题】
1. 如果servlet-mapping的url-pattern配置为/*。
华丽丽的说找不到页面了。配/、/*.action什么的就没事了。网上解释说/*的话controller返回的modelAndView直接由dispatcherServlet解析而不由视图解析器解析,所以报错。然而我并不知道这是个什么鬼意思。
2. 把处理器映射器和处理器适配器注释掉工程也跑得飞起,完全没有什么问题的样子。
是不是这两个玩意是多余的,根本就不需要配置啊。
答案是可以不配置,但是不是多余的。因为org.springframework.web.servlet包下有一个DispatcherServlet.properties。里面有一系列默认的配置。
里面就有DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter。所以即使ApplicationContext.xml没有配置,但是dispatcherServlet会根据配置的controller路径信息自动调用相应的映射器和适配器。
【任务收获】
1. 从mybatis到spring+mybatis,再到springmvc再到springmvc+mybatis,算是把从浏览器访问数据库的流程捋清楚了。
2. 遇到了一些常见的错误,找到bug的时候简直跟找到女朋友的感觉是一样的。
【后续安排】
1. 学习http报文。(参考书籍:《http权威指南》,《RESTful Web Service》)
2. 进行任务3.
评论