发表于: 2017-11-05 00:01:22
1 729
今天完成的事:
1.明确使用ajax来完成前后端通信
没有找到模板前一直在写form表单,前后端交互都是用form表单来进行,真心要类死啊.然后找了师兄们发现是用ajax来交互,就把之前写的form交互全给删了.今天一天的工作算是白费了,感觉自己什么都没做
2.短信,邮件,图像上传成功集成到自己的报名系统中
邮件和短信很简单,客户端点击发送验证ajax异步通信携带数据请求指定的url,处理执行逻辑要么发送成功或失败
客户端填写验证码,点击提交携带验证码,邮箱,用户id等信息请求指定的url.处理单元执行逻辑判定是否有效并进行处理,如下图:
还有就是图片上传功能是这样实现的,首先用户点击更换头像,发送请求到服务器,服务器根据传过来的id获取用户的头像链接是否为空,如果为空格直接生成token并生成form表单返回客户端.若不为空,先把七牛云上的已有图像删除,再将数据库中的对应图像链接字段设置为Null,生成token并返回form表单.
客户端选择图像后点击上传直接上传七牛云,七牛云再请求我服务器的/callback,服务器收到请求解析参数,将hash值存到用户数据库中的图像字段.再响应七牛云json数据,七牛云响应服务器响应的json字段.
明天计划完成的事:
1.防攻击策略写好,图片迁移写好
2.提交任务7
今天遇到的困难:
1.因为自己在service实现类里添加了新的方法add(),我注入bean用接口来接收只能使用接口定义的实现方法,使用不了add方法,所以就改为使用实现类类型来接收注入的bean.发现老是报错说,我的实现类已经被动态代理了无法转化为实现类类型
后来在成延大佬的帮助下顺利解决并理解了背后的原因,也理解了spring的代理机制,总结就是如下图:
这里再详细说一点吧,我测试过后发现,如果没有对目标类使用aop,那么使用实现类或接口都是没问题的,那么是否可以说是使用cglib代理的呢,
如果使用了aop,比如我对UserService类的方法使用了aop环绕通知,默认是会使用动态代理,也就表明无法将bean赋值给实现类.
如果要指定使用cglib代理,在配置aop驱动时需要加上<aop:scoped-proxy proxy-target-class="true">
2.替换七牛云图片后发现七牛云上面图片已经被替换了,但是访问外链还是之前的图片,咨询技术支持说是什么缓存的问题.
后来直接快到斩乱麻,每次更新如果已经有了,先调用删除接口删除,再上传,顺利解决.
收获:
深刻理解了spring代理的机制
经过任务7写的垃圾代码,深刻认识到打日志的必要性,mybatis动态sql语句的重要性,每次写代码前做方案的重要性.
评论