最近使用 spring boot、 quartz、H2(内存数据库) 以及 RabbitMQ 等实现了一个动态的任务管理系统,可以动态的进行任务的创建、修改、暂停、运行以及删除操作,并且使用了 RabbitMQ 消息队列实现了定时任务系统与具体业务系统的解耦,再也不需要每次加个定时任务都上线一次了。
@Conditional
注解是 Spring 4 提供的基于条件的 Bean 的创建方式,Spring Boot 大量利用了这个特定来实现自动配置。比如,当某一个 jar 包在一个类路径下时,自动配置一个或者多个 Bean;或者只有一个 Bean 创建时,才会创建另一个 Bean。总的来说,就是根据特定条件来控制 Bean 的创建行为,这样就可以利用这个特性进行一些自动配置。
Spring 事件体系是观察者模式的典型应用,观察者模式中有主题(Subject)和观察者(Observer),它定义了对象之间的一对多的依赖关系,当主题状态发生变化时,所有观察者都会收到通知并且自动更新,它的主要目标就是松散耦合对象间的一对多的依赖关系。
qiniu-image-tool 是一个提升 markdown 贴图体验的实用小工具,支持 windows 及 mac。其中 qimage-win 为windows版本,基于AutoHotkey
和qshell
实现,一键上传图片或截图至七牛云,获取图片的markdown引用至剪贴板,并自动粘贴到当前编辑器。
qimage-mac是一个mac上提升markdown贴图体验的实用小工具,可以自定义快捷键,一键上传图片或截图至七牛云,获取图片的markdown引用至剪贴板,并自动粘贴到当前编辑器。
调试移动应用的H5时,大部分情况都可以在PC上模拟,但有时会存在需要校验native环境信息及签名等复杂的情况,浏览器上模拟需要准备一些必备的参数并且不够接近真实环境,这时就希望APP端能够像pc一样可以配host,可以查看network详细信息,这个时候可以借助fiddler来实现了。
经常有类似这样的需求:对外提供一个接口(例如向音箱提供一个nlu接口),而这个接口会有多个实现,例如购物的nlu和音乐的nlu分别就是不同的实现类,而且这些实现类会有很多公共的实现,这时应该怎么去设计这个系统使得最大程度的复用代码,并且以后新增业务的代价最小?这里就可以用到工厂设计模式。
当前HTTPS正在迅速普及,为了保证用户信息安全以及网站不被运营商等劫持,百度京东等很多网站已经全站切换https。由于系统上线前需要先在测试及预发布环境进行测试,而部门的静态资源测试机不支持https请求,给测试工作造成一定的不便,因此决定给nginx配置一个自签名证书。
为什么京东的网站没登录也可以加入购物车?为什么刚打开淘宝页面左上角就显示出了我的用户名?为什么我在这个商品页登陆了,其它的页面刷新后也显示已登录?今天就来仔细的探讨一下Http的Cookie和Session机制。