题外话:不知不觉又一年,无处藏身,甚是恐惧。
1、MDN
说来惭愧,虽然之前就因为查询资料去过MDN,但从没像现在这样意识到它的牛逼之处,web开发的百科全书,又简洁明了。
在此郑重向大家推荐一下,MDN,你值得拥有! 链接:https://developer.mozilla.org/zh-CN/
提示:中文版仅作参考,最好使用英文版 - 因为中文版是热心网友友情翻译的,难免各种问题。
2、SSE vs WebSocket
其实还没深入,就是看MDN上的资料得出的一点结论:
SSE是server-sent event,是浏览器端持续接收服务器端消息的技术,其接口是EventSource。
WebSocket是一种双向交互的技术,既可以随时给服务器发送消息,也可以随时接收服务器的消息。
二者的区别就是:SSE是单向的技术,WebSocket是双向的技术。
过段时间争取写一个比较低级的demo出来,方便理解原理。
3、FormData
也是头一次知道。
用于封装页面的表单数据,H5的东西,真心不错,推荐没使用过的人尝试一下。
4、Spring Security
很好很强大,也很简单,可惜现在没时间翻译资料了。
打算找个时间写一下权限相关的东西。
5、SPI & classpath view
SPI,Service Provider Interface。
一种使用配置文件来决定接口的实例的技术 - 就是一个接口有很多实现,使用配置文件来指定用哪个实现类来创建对象。(总感觉之前的随笔里写过了)
classpath view,这是我的叫法,举个例子你就明白了。
以Spring MVC的InternalResourceViewResovler为例,你可以设置view的prefix和suffix。
那你知道prefix除了可以设置成 ”/WEB-INF/views.” 这种,还可以设置成 “classpath:/views/” 吗?
当然,这是使用了Spring的ResourceLoader技术,在web项目中应该等价于 “/WEB-INF/classes/views/” -- 我没试过,你们试了可以告诉我结果。
不过理论上应该没问题。
你们肯定知道 Spring还有 “classpath*:” 的写法,有兴趣的可以看看这篇: Spring中 classpath* 和 classpath 前缀的区别
最后,祝大家2017年圆满结束,祝大家新的一年里前程似锦、心想事成!