R044.SpringMvc对国内IP做CDN
不等不靠,有囧有料。攻城狮,是一种品质。
以SpringMvc为静态资源提供CDN版本号为幌子,
介绍了jetty嵌入, servlet规范,springMvc启动,treemap找中国IP。
@史荣久 / 2016-11-11 / CC-BY-SA-3.0
观看视频
内容摘要
- 文件版本号,有文件hash的,也有简单粗暴(如本期)的
- Servlet容器加载:Context→listener→filter→servlet
- Servlet2.x(2.5)和Servlet3.x(3.1)规范插曲
- SpringMvc的3个XML和2个Context,弄反会引发@Value注入不到。
- IntrospectorCleanupListener监听,避免乱起线程,内存泄露。
- Interceptor和Filter区别(生命周期)。
- SpringEL 直接在模板中使用CDN bean(本期未使用模板)
- Embedding Jetty 更便捷的启动和调试。
- 中国IP段判断,TreeMap(其他集合类也推荐自读)
- 如果有Nginx等反向代理,要把真实IP发过来。
- 演示版本: spring 3.0.7, jetty 7.6.21, servlet 2.5
- jetty 8+ == servlet 3.x; spring 3.0 != 3.x
- 插曲:mvn私有库配置
<mirrorOf>*,!central</mirrorOf>
参考资料
- SpringMvc Context继承关系#Figure 22.2
- Jetty Embedding(current)
- Jetty Embedding(7 and 8)
- Jetty 下载
- Servlet 2.4#9.12 初始顺序
- Servlet 3.1#8.2.2 顺序的补充
- SpringMVC启动过程详解
- 中国IP地址段
- treemap范围,有序(集合类系列不错)
欢迎围观
if (you.accept(MoilionCircle.SPIRIT)) {
if(you.haveADL()){
MoilionCircle we = you.search(MoilionCircle.SLOGAN);
we.welcome(you);
}
if(you.share(this)){
We.thank(you);
We.mayFind7Moilion();
}
}
制作花絮
双十一励志,再次去美帝,临时赶制,为了心中的一点点坚持。
One Night in BeiJing,和凯爷吃烤鸭,在PP休息室传视频。
网真慢,开始倒时差了,看了8小时代码,脑子不够用啊。
题图:CDN(Content Delivery Network)可避开影响数据传输和稳定性的瓶颈和环节,使内容传输的更快、更稳定,俗称加速。