发表于: 2019-12-24 17:00:01

1 1135


今天完成的事情:

找到了昨天最后一个数据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.碰到问题一定要多看日志,日志显示错误最直观




明天计划的事情:


深度思考


返回列表 返回列表
评论

    分享到