发表于: 2017-10-26 23:38:16
2 784
今日完成:
1)由于任务还没有结束,自己尝试总结了深度思考中的一些问题。
|- rest的请求方法有哪些,有什么区别?
PUT:向服务器发送数据,但不增加,对应数据库的更新,表单也不支持这种,PUT通常指定了资源的存放位置。
GET:请求服务器的数据,对于数据库操作的查询
POST:向服务器发送数据, 发送的数据相当于数据库的添加
DELETE:向服务器提交删除请求,相当于数据库的删除
|-Http协议的特点与适用范围
http连接:http连接就是所谓的短连接,即客户端向服务器端发送一次请求,服务器端响1应后连接即会断掉;
http适用场景:公司OA服务,互联网服务
|- SpringMVc与Struts的区别:
(1)Struts是类级别拦截的,一个类对应一个request
SpringMVC是方法级别的,一个方法对应一个request,同时一个方法对应一个url,所以更容易实现restFul
(2)Spring中每个方法的数据是独立的,Action中,请求的数据一般在方法中是共享的
(3)由于Struts2需要针对每个request进行封装,把request,session等servlet生命周期的变量封装成一个一个Map,供给每个Action使用,并保证线程安全,所以在原则上,是比较耗费内存的。
(4) 拦截器实现机制上,Struts2有以自己的interceptor机制,SpringMVC用的是独立的AOP方式,这样导致Struts2的配置文件量还是比SpringMVC大。
(5)SpringMVC的入口是servlet,而Struts2是filter(这里要指出,filter和servlet是不同的。以前认为filter是servlet的一种特殊),这就导致了二者的机制不同,这里就牵涉到servlet和filter的区别了。
(6)SpringMVC集成了Ajax,使用非常方便,只需一个注解@ResponseBody就可以实现,然后直接返回响应文本即可,而Struts2拦截器集成了Ajax,在Action中处理时一般必须安装插件或者自己写代码集成进去,使用起来也相对不方便。
(7)SpringMVC验证支持JSR303,处理起来相对更加灵活方便,而Struts2验证比较繁琐,感觉太烦乱。
(8)Spring MVC和Spring是无缝的。从这个项目的管理和安全上也比Struts2高(当然Struts2也可以通过不同的目录结构和相关配置做到SpringMVC一样的效果,但是需要xml配置的地方不少)。
(9) 设计思想上,Struts2更加符合OOP的编程思想, SpringMVC就比较谨慎,在servlet上扩展。
(10)SpringMVC开发效率和性能高于Struts2。
(11)SpringMVC可以认为已经100%零配置。
|- filter与Interceptor的区别
Filter是基于函数回调的,而Interceptor则是基于Java反射的。
Filter依赖于Servlet容器,而Interceptor不依赖于Servlet容器。
Filter对几乎所有的请求起作用,而Interceptor只能对action请求起作用。
Interceptor可以访问Action的上下文,值栈里的对象,而Filter不能。
在action的生命周期里,Interceptor可以被多次调用,而Filter只能在容器初始化时调用一次
ps: Filter和Interceptor的执行顺序
过滤前-拦截前-action执行-拦截后-过滤后
|-常用的打包方式:
http://www.infoq.com/cn/news/2011/06/xxb-maven-9-package
|-接口文档规范
http://blog.csdn.net/lovesummerforever/article/details/45149393
|-使用annocation需要哪些配置
添加context:component-scan,扫描指定包下面的注解,如果扫描到有@Component @Controller@Service等这些注解的类,则把这些类注册为bean,同时,这个配置把context:annotation-config包括进来,这个配置可以在spring 容器中注册 四个BeanPostProcessor
AutowiredAnnotationBeanPostProcessor
CommonAnnotationBeanPostProcessor
PersistenceAnnotationBeanPostProcessor
RequiredAnnotationBeanPostProcessor
ps:Autowired与Resources的区别
两者都是用来bean注入的,通俗来说,autowired是按照类型注入,如果想按照名字注入,需要使用@Quired注解。@Resource默认是按照那么注入的,它有两个属性name,与type。如果指定name就按name注入,如果指定type,就按照type注入
今日疑问:
没有疑问~
明日任务:
梳理一下深度思考的内容,然后进入下一个任务
评论