Ink's Blog

Less is more

Scala 的 Case Classes 和 Pattern Matching

Case Classes and Pattern Matching

本文将讲解 Scala 中无处不在的 case class 和 pattern matching,为什么要放在一起讲呢,因为 case class 一般就是和模式匹配一起使用,习惯了用这套组合拳以后就再也不想写 Java 代码了,use less code to show more! Case Classcase class 是指在 class 前面加上 case 关键字,下面是一个例子......

Scala Implicit 详解

The Details of Scala Implicit

Implicit 是 Scala 中一个很重要的特性,开始学习 Scala 之前一直以为它和 Java 差不多,然而真的看一些 Scala 的源码时却发现并没有想象中那么简单,所以准备写几篇文章来详解 Scala 中异于 Java 的特性,就从 Implicit 开始吧。 在我看来,Implicit 做的事情也是 Scala 主要做的事情,那就是代码压缩,减少模块代码,talk is c......

Scala Composition and Inheritance

Notes of Programming in Scala

parameterless methods && empty parenthesesparameterless methods def width: Int empty parentheses def width(): Int However, it’s still recommended to write the empty parentheses when the inv......

SparkStreaming + Flume + Kafka 进行实时日志分析

Process with SparkStreaming, Flume and Kafka

每个公司想要进行数据分析或数据挖掘,收集日志、ETL都是第一步的,今天就讲一下如何实时地(准实时,每分钟分析一次)收集日志,处理日志,把处理后的记录存入Hive中,并附上完整实战代码 整体架构思考一下,正常情况下我们会如何收集并分析日志呢? 首先,业务日志会通过Nginx(或者其他方式,我们是使用Nginx写入日志)每分钟写入到磁盘中,现在我们想要使用Spark分析日志,就需要先将磁盘中......

数据仓库的架构与设计

Data Warehouse Architecture and Design

公司之前的数据都是直接传到Hdfs上进行操作,没有一个数据仓库,趁着最近空出几台服务器,搭了个简陋的数据仓库,这里记录一下数据仓库的一些知识。 什么是数据仓库数据仓库的概念官方定义 数据仓库是一个面向主题的、集成的、随时间变化的、但信息本身相对稳定的数据集合,用于对管理决策过程的支持。 这个定义的确官方,但是却指出了数据仓库的四个特点。 特点 面向主题:数据仓库都是基于某个明确主题,仅......

关于 web.xml 中 Spring 配置文件的启动顺序

但凡搞 JavaWeb 开发的对 web.xml 应该是非常熟悉了,但是你真的了解其中的配置吗,这里我们讲一下 Spring 相关配置启动的先后顺序。 在web.xml中定义的Spring的配置文件一般有两个: 1、Spring上下文环境的配置文件:applicationContext.xml <context-param> <param-name>context......

Spring 事务管理

超级干货讲解 + 实战演练

写这篇博客之前我首先读了《Spring in action》,之后在网上看了一些关于Spring事务管理的文章,感觉都没有讲全,这里就将书上的和网上关于事务的知识总结一下,参考的文章如下: Spring事务机制详解Spring事务配置的五种方式Spring中的事务管理实例详解 初步理解理解事务之前,先讲一个你日常生活中最常干的事:取钱。 比如你去ATM机取1000块钱,大体有两个步骤:首......

Spring AOP(三)

通过 @AspectJ 注解切面

在Spring AOP(二)中给出了在XML中配置切面的方法,本节学习通过@AspectJ来注解切面。 使用的例子仍然是Spring AOP(二)中的例子,前面讲的已经很详细了,具体原理不再说明,直接上代码 注解切面XML配置 <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springfra......

Spring AOP(二)

在 XML 中配置切面

在Spring AOP(一)中介绍了AOP的基本概念和几个术语,现在学习一下在XML中如何配置AOP。 在XML中AOP的配置元素有以下几种: AOP配置元素 描述 <aop:config> 顶层的AOP配置元素,大多数的<aop:*>元素必须包含在<aop:config>元素内 <aop:aspect> 定义切面 &......

Spring AOP(一)

什么是 AOP?

对于一个企业级应用来说,主要处理的是整个核心业务流程,这是我们主要关注的。但是同时一个应用也需要很多非核心但是必不可少的功能,例如应用的安全性,日志,可以说对于一个应用的多个功能来说都需要这些辅助性的功能。现在我们想要这些辅助功能,同时又不想在每一个业务核心功能中都加入一次这些功能,那么是否有什么好的办法?AOP就是答案。 整体理解AOP是aspect-oriented programm......