今天要讲的时@Scope这个组件.为什么说它是进阶组件,就是因为它基本上没作用,但在理解了基本组件之后又必须用到. Scope的意思是作用域,一般用来标记@Provide方法,将生成的对象单例化.但@Scope不能直接使用,需要先实现.默认实现有@Singleton. 一 局部单例 话说千百句,不如码二行. 直接上代码,就不在原来的代码上改了,另起一个Activity,命名为SecondActivity. public class SecondActivity extends AppCompat…
喝很多自主学习的人,我接触Dagger 2 框架的原因是刚进公司的时候导师给安排的学习任务,学习方式是组内培训. 听到这个消息的我,以为是部门的人轮流给我讲课. 后来导师跟我说,组内培训的意思是,我先自己好好学这个框架,然后给组内的所有人搞个培训. 没办法,在网上看了很多相关博客,浪费了不少时间,终于还是学有所得,也记录一下我最近的学习进展. 就不多讲什么历史了,你能看到我这篇博客,想来历史什么的科普你都已经被塞到吐了,还是撸代码学得快. 一 环境配置 在module的build.gradle中…
书接上文,先回顾以下前一章写的内容. 内容大概就是在Activity中用@Inject标记一个注入的类,然后在这个类的构造函数上也打个@Inject标记,然后使用@Component来连接两边,完成对象的创建和注入.整体流程朴实无华,且枯燥. 到这里可能就有花生发现了西瓜! 如果要注入的是第三方库呢?我不可能去把封装好的第三方库打开,然后给它的构造函数打个@Inject! 那么我们就要引入四大基本组件的后两个组件:@Module和@Provide. 这两个是配套使用的,我直接在上一章的代码上改:…
概述 下面几个问题,相信广大 K8s 用户在日常集群运维中都曾经遇到过: 集群中的某个应用被删除了,谁干的? Apiserver 的负载突然变高,大量访问失败,集群中到底发生了什么? 集群节点 NotReady,是什么原因导致的? 集群的节点发生了自动扩容,是什么触发的?什么时间触发的? 以前,排查这些问题,对客户来说并不容易.生产环境中的 Kubernetes 集群通常是一个相当复杂的系统,底层是各种异构的主机.网络.存储等云基础设施,上层承载着大量的应用负载,中间运行着各种原生(例如:Sch…
IoC(Inversion of Control): IOC的基本概念是:不创建对象,但是描述创建它们的方式.在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务.容器负责将这些联系在一起. 其原理是基于OO设计原则的The Hollywood Principle:Don't call us, we'll call you(别找我,我会来找你的).也就是说,所有的组件都是被动的(Passive),所有的组件初始化和调用都由容器负责.组件处在一个容器当中,由容 器负责管理.…
本节主要讲述 webpack的两大经典开发调试插件,热插拔内存缓存机制 文章目录 1. html-webpack-plugin插件的使用 2. webpack-dev-middleware 插件登场 3. webpack-hot-middleware 为了左手 4. 实现html模版更改自动刷新 5. 本案例测试源码下载 html-webpack-plugin插件的使用 如果没记错,上篇的时候构建完成的js文件是我们在页面用 script 标签手动引入的, 聪明的您应该马上看出问题来了,难道每次…
在进行讲解之前,先带大家学习下hadoop关于hdfs自己的安全如何实现的--------------------------- 名词: ACL-访问控制列表(Access Control List,ACL) ARBAC-基于角色的权限访问控制(Role-Based Access Control) 所有安全体系的了解,大数据平台安全体系的四个层次说起:外围安全.数据安全.访问安全以及访问行为监控,如下图所示: 外围安全技术多指传统意义上提到的网络安全技术,如防火墙,登陆认证等: 数据安全从狭义上…
由于设计师或者产品经理使用的移动设备大部分是iPhone,所以在做设计时,容易忽略Android和iOS的差异,按照自己的使用习惯进行设计,导致大部分设计师或产品经理做出的设计都是基于iOS规范或习惯.而安卓则照搬iOS.这对于安卓开发而言是个灾难,很多组件本可以直接调用系统,由于按照iOS的设计,则需要开发自己写,研发成本变得很高. 如果设计师或者产品经理有的异常场景状态没有想到,导致安卓开发没有组件调用,为了省事就直接调用安卓自带组件,导致整个产品在视觉风格上面既有产品风格的组件又有安卓系统…
不多说,直接上干货! 目前啊,都知道,大数据集群管理方式分为手工方式(Apache hadoop)和工具方式(Ambari + hdp 和Cloudera Manger + CDH).  手工部署呢,需配置太多参数,但是,好理解其原理,建议初学这样做,能学到很多.该方式啊,均得由用户执行,细节太多,切当设计多个组件时,用户须自己解决组件间版本兼容问题.  工具部署呢,比如Ambari或Cloudera Manger.(当前两大最主流的集群管理工具,前者是Hortonworks公司,后者是Clou…
今年 8 月 Go 开发团队公布了 Go 2.0 的设计草案,包括错误处理和泛型这两大主题.现在备受瞩目的 Go 2.0 又有了新动向 —— 昨日 Go 开发团队在其官方博客表示,Go 2 已经被安排上了!目前 Go 2 已进入确定变更提案的阶段,并公布了提案评估流程. 废话不多说,先来看看 Go 2.0 有哪些值得关注的内容: 1.最大程度保持对 1.x 的兼容,以避免分裂 Go 语言生态系统2.采用增量升级的方式,而非单独发布重大更新版本3.实施新的提案评估流程,以评估尚未解决且被标记为提案…