发表于: 2017-11-15 16:14:08
1 716
今天完成的事情:
1.学习拦截器
2.首先就是测试memcached是不是启动的一个测试类
3.memcached的学习,对memcached有了一个大概的了解
也就是最主要的建memcached的工具类
这里就会遇到昨天说到的先放jar包,总的来说,maven仓库里没有,确实有些麻烦。所以这次我换了一个jar包,从中央仓库找到的Memcached-Java-Client包,貌似还没出问题。
(1)配置完以后就写工具类
就相当于连接池和实现类的结合。
做了一个测试:
这儿会有报错,就是调用Student类时报错:说找不到。主要原因就是序列化的问题。
所以工具类设计到的新知识点有:序列化,权重,SockIOPool
(2)算是个进行优化吧,使用spring框架,将工具与spring进行整合。
首先是建一个配置文件。然后将memcached注入
国际惯例,还是一个测试类:
也就是说,整合以后也是可以用的。
这儿出了个小问题,就是端口号我写错了,然后一直访问不到,最后在配置文件里修改以后就好了。
提醒我以后多写测试类,这样每一个功能的实现如果出现问题,可以及时发现,并且找到错误的地点。
明天计划的事情:
继续压测
遇到的问题:
在上面都有提到,都是一些小问题,写错啊,忘写呀等。
收获:
1.SpringMVC的拦截器
(1)简介
Java里的拦截器是动态拦截action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行,同时也提供了一种可以提取action中可重用部分的方式。在AOP(Aspect-Oriented Programming)中拦截器用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。
Spring Web MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器进行预处理和后处理。
(2)定义接口
SpringMVC 中的Interceptor 拦截请求是通过HandlerInterceptor 来实现的。在SpringMVC 中定义一个Interceptor 非常简单,主要有两种方式,第一种方式是要定义的Interceptor类要实现了Spring 的HandlerInterceptor 接口,或者是这个类继承实现了HandlerInterceptor 接口的类,比如Spring 已经提供的实现了HandlerInterceptor 接口的抽象类HandlerInterceptorAdapter ;第二种方式是实现Spring的WebRequestInterceptor接口,或者是继承实现了WebRequestInterceptor的类。
(3)实现接口方法
HandlerInterceptor 接口中定义了三个方法,我们就是通过这三个方法来对用户的请求进行拦截处理的。
preHandle:预处理回调方法,实现处理器的预处理(如登录检查),第三个参数为响应的处理器(如我们上一章的Controller实现);
返回值:true表示继续流程(如调用下一个拦截器或处理器);
false表示流程中断(如登录检查失败),不会继续调用其他的拦截器或处理器,此时我们需要通过response来产生响应;
postHandle:后处理回调方法,实现处理器的后处理(但在渲染视图之前),此时我们可以通过modelAndView(模型和视图对象)对模型数据进行处理或对视图进行处理,modelAndView也可能为null。
afterCompletion:整个请求处理完毕回调方法,即在视图渲染完毕时回调,如性能监控中我们可以在此记录结束时间并输出消耗时间,还可以进行一些资源清理,类似于try-catch-finally中的finally,但仅调用处理器执行链中preHandle返回true的拦截器的afterCompletion。
2.序列化
简单的来说就是为了保存各个对象在内存中的状态(也就是实例的变量,不是方法),并且可以把保存的对象状态读出来。虽然你可以用你自己的各种各样的方法来保存 object states,但是java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。
形式如下:
public class Student implements Serializable{
3.SockIOPool
SockIOPool是Memcached客户端提供的一个套接字连接池,通俗讲,就是与Memcached服务器端交换数据的对象。
4.权重
这个有点那理解,目前还是不太懂,再多看看。
评论