Shiro 反序列化漏洞原理分析
1 概述 Apache Shiro 在 Java 的权限及安全验证框架中占用重要的一席之地,在它编号为 550 的 issue 中爆出严重的 Java 反序列化漏洞。 Shiro 反序列…
fastText 源码分析
fastText 是 facebook 近期开源的一个词向量计算以及文本分类工具,该工具的理论基础是以下两篇论文: Enriching Word Vectors with Subword Informat…
git add . 和 git add -u 和 git add -A 的区别
git add . :该命令会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容的修改(modified) 以及新建的文件(untracked file)…
我应该把全应用级提供商添加到根模块 AppModule 还是根组件 AppComponent 中?
在根模块 (AppModule) 中注册全应用级提供商,而不是 AppComponent 中。 惰性加载的模块及其组件可以注入 AppModule 中的服务,却不能注入 AppCompone…
为什么在惰性加载模块中声明的服务提供商只对该模块自身可见?
和启动时就加载的模块中的提供商不同,惰性加载模块中的提供商是局限于模块自身。 当 Angular 路由器惰性加载一个模块时,它创建了一个新的运行环境。…
为什么服务提供商在特性模块中的任何地方都是可见的?
列在引导模块的 @NgModule.providers 中的服务提供商具有全应用级作用域。往 @NgModule.providers 中添加服务提供商将导致该服务被发布到整个应用中。…
我应该导入 BrowserModule 还是 CommonModule?
几乎所有要在浏览器中使用的应用的根模块 (AppModule ) 都应该从 @angular/platform-browser 模块中导入 BrowserModule 。 BrowserModule 提供了浏览…
Angular 我应该把哪些类添加到 declarations 中?
可以把可声明的类添加到模块 declarations 列表中。可声明的类是指:组件、指令和管道。这些类只能在应用程序的一个并且只有一个模块中声明。只有当它…
Nginx 通过 rpm 安装包的方式安装
一、获取组件可执行程序库,包括主程序,此为组件的基本文件 1.官网获取 rpm 安装包 创建目录 /usr/local/nginx,将 rpm 包下载到该目录下 根据 [base…
Screen 如何使用 常用命令
创建会话: screen -S <会话名> 你需要确保你已经退出了该会话。如果你仍在会话内,请按 Ctrl+A 然后按 D 键来暂时 detach (断开)会话,这样会话…
ES6 async 函数详解
async 函数是基于 Generator 函数实现的,也就是说是 Generator 函数的语法糖。在之前的文章有介绍过 Generator 函数语法和异步应用,如果对其不了解…
前端必须要懂的浏览器缓存机制
1. 什么是浏览器缓存? 浏览器通常会将常用资源缓存在你的个人电脑的磁盘和内存中。如 Chrome 浏览器的缓存存放位置就在: \Users\Your_Account\AppDa…
7 个 ES6 编码技巧
Hack #1 &mdash 交换变量 用于 Array Destructuring 交换值 let a = 'world', b = 'hello' [a, b] = [b, a] console.log(a) // -> hello console…