今天完成的事情:
找到了昨天最后一个数据senior无法传入
为空值的原因
原因:实体类中 senior的set方法 传的参数应该是senior 我写的wish

更正:

然后就好了。
任务2总结
自己脑图

官方脑图
任务过程:
一、先是学习如何编写接口文档
然后是RESTful风格的url
(result风格接口,刚开始很难理解,但后面搭建mvc过程时就慢慢理解了)
总结就是你看到这个URL就知道它在干嘛
比如http://www.dada.com/user/name?name=王五
肯定就是在user(用户)中找到name(名字)为"王五"的用户
二、搭建spring_mvc
这个主要是掌握spring mvc流程 及其 环境配置搭建
MVC里最重要的就是 前端控制器DispatcherServlet
可以接受请求,返回请求,调用其他组件进行工作
流程:
第一步:用户发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过xml配置或者注解进行查找
第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)
第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)
第五步:处理器适配器去执行Handler
第六步:Handler执行完给处理器适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析
第九步:视图解析器像前端控制器返回View
第十步:前端控制器对视图进行渲染
第十一步:前端控制器向用户响应结果
流程其实就这一张图,已经完全概括了spring-mvc 的完整流程。
三、学习json-taglib标签
就是在jsp页面,通过使用json-taglib标签, 让数据返回的格式为JSON
这个光引入依赖还不行,还得用 mvn-install 命令安装jar包
(还有种返回json数据的方法是使用@reponsebody 直接跳过视图解析,返回json格式的数据)
四、学习web容器
1.tomcat
2.jetty
3.resin
在linux服务器中的使用及配置
总体就是:
1.先学会三者安装,配置环境
2. 修改端口,保持访问的端口唯一 不被占用
基本在conf文件下的配置文件里(名称不太一样
3.增加日志文件里显示的内容,能看到一条请求花费了多少毫秒的时间
4.修改resin启动内存 主要目的是为了优化性能
5.学习nginx
使用反向代理隐藏服务器ip
也可以使用负载均衡 分配处理请求给多个web容器
五、学习postman的使用
postman可以 测试增删查改接口,无需在网页测试
方便快捷,还可以列出所需时间,方便代码优化
还可以把一个项目所有请求
保存起来 ,方便管理
六、学习shell部署脚本 和其他一些基础命令(top kill)
shell部署脚本
就是很多linux命令的集合 功能很强大,可以做很多事情(要结合脚本格式写)
围绕任务,我们可以写一些简单的shell脚本
比如:
1.控制web容器的启动关闭 (不用去每个web容器的bin目录,手动单个开启)
2.同时复制某个war包到3个容器的webapps目录下(不用挨个复制3遍)
linux基础命令
top就是列出 linux服务器正在运行的程序信息 包括pid 占用内存 占用cpu等信息
方便我们检查程序的运行
kill 就是直接结束某个程序 可以配和top使用(kill pid)
任务中我常用到的其他的命令
比如 lsof-i:端口 查看某个端口占用情况
ps -ef|grep resin 通过grep管道查看resin程序是否在运行
七、spring+mybatis+springmvc的整合
这个最主要是要学习 web.xml 配置文件

任何web容器启动,都要先读取web.xml文件
web.xml文件不出错,项目才能正常运行
web.xml文件主要有以下几部分组成:
环境参数(context-param): 初始化spring的配置)
监听器(listener): (加载初始化配置context-param)
过滤器(filter): (过滤条件)
控制器servlet: (整个springmvc流程)
拦截器(interceptor): (作用在servlet内部)
web.xml运行时的执行顺序: context-param- listener- fifter- servlet- interceptor
执行过程关系图:
八、参数的校验
主要是掌握 hibernate-validator 注解校验的引入依赖及启用
如果有需要,也可以使用
@Controlleradvice 接收主动抛出的异常
并返回相关的错误信息
任务二共耗时32天,进度缓慢
一 任务进度是否符合预期,是否延期,如果延期,原因是什么,如何避免下次继续延期
不符合预期,延期了好多天
原因:
1.任务2前期学习过程中一直在划水,没有坚持不懈的学习
碰到看不懂问题,一头疼就想划水,一天也没学多少。
————好好学习啊
2. 学习过程中 ,有些任务要求的知识点
找很多博客,或师兄日报。 要么不符合自己的需求,要么没有写清楚总体配置
从中筛选过程中,浪费了一些时间
———— 找一些标准的配置方法,如果你有一本参考书里,那还是比较正规的
3. 碰到的好多问题,往往都是一个参数名写错 空格问题 或者配置里其他小错误引起的
排查很慢,虽然最后都慢慢能解决,但也浪费了很多时间
——— 敲代码过程中要细心,排错过程中多看日志
二 脑图对比分析
在上方
三 任务中遇到哪些疑难问题,最终是如何解决的,有哪些值得分享的收获
最疑难的问题: 记录其中碰到一个困扰两天的404问题,任何请求都是404
两天里用了各种方法,都没解决。
最后终于在一篇博客里找到了错误原因
错误原因:
我的spring-mvc.xml文件下 配置扫描controller注解 是这么写的
<!--开启注解扫描,只扫描Controller注解-->
<context:component-scan base-package="com.lang">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
其中的include-filter根本就没有生效 原因是:子容器把带事务管理的父容器给覆盖了
导致@controler的注解根本就没有被扫描 就一直报404
解决方法: 直接扫 不加任何别的标签
<!-- 开启注解扫描 这里扫描的是我的控制层包 用来扫描@Controller注解 -->
<context:component-scan base-package="controller" />
其他收获:
1.打包到war到服务器运行时,一定要记得把mysql的用户名密码换成服务器里的mysql的
2.restful风格看不懂没关系,直接做任务很快就理解了
3. 把spring-mvc原理 和 web.xml 里的概念及执行顺序搞懂
整个ssm框架之间的相应关系,就很容易理解清楚了
4.碰到问题一定要多看日志,日志显示错误最直观
明天计划的事情:
深度思考
评论