专注Java技术分享,为Java程序员提供有价值的内容
700 followers 0 articles/week
Spring AOP是什么?你都拿它做什么?

为什么会有面向切面编程(AOP)?我们知道Java是一个面向对象(OOP)的语言,但它有一些弊端,比如当我们需要为多个不具有继承关系的对象引入一个公共行为,例如日志、权限验证、事务等功能时,只能在在每个对象里引用公共行为。这样做不便于维护,而且有大量重复代码。AOP的出现弥补了OOP的这点不足。 为了阐述清楚Spring AOP,我们从将以下方面进行讨论: 代理模式 静态代理原理及实践 动态代理原理及实践 Spring AOP原理及实战 1. 代理模式 代理模式:为其他对象提供一种代理以控制对这个对象的访问。这段话比较官方,但我更倾向于用自己的语言理解:比如A对象要做一件事情,在没有代理前,自己来做;在对 A 代理后,由 A 的代理类 B 来做。代理其实是在原实例前后加了一层处理,这也是...

Sat Jan 12, 2019 15:13
一文搞清Gradle依赖

之前对 Android Gradle 构建的依赖一直傻傻分不清,这段时间正好接入集团的一个二方库,踩了很多坑,也顺带把 Gradle 依赖这块搞清楚了,主要整理了下 Gradle 依赖的类型、依赖配置、如何查看依赖、依赖冲突如何解决。 依赖类型 dependencies DSL 标签是标准 Gradle API 中的一部分,而不是 Android Gradle 插件的特性,所以它不属于 Android 标签。 依赖有三种方式,如下面的例子: apply plugin: 'com.android.application' android { ... } dependencies { // Dependency on a local library...

Thu Jan 10, 2019 20:50
HashMap?面试?我是谁?我在哪

现在是晚上11点了,学校屠猪馆的自习室因为太晚要关闭了。勤奋且疲惫的小鲁班也从屠猪馆出来了,正准备回宿舍洗洗睡,由于自习室位置比较偏僻所以是接收不到手机网络信号的,因此小鲁班从兜里掏出手机的时候,信息可真是炸了呀。小鲁班心想,微信群平时都没什么人聊天,今晚肯定是发生了什么大事。仔细一看,才发现原来是小鲁班的室友达摩(光头)拿到了阿里巴巴 Java 开发实习生的 Offer,此时小鲁班真替他室友感到高兴的同时,心里也难免会产生一丝丝的失落感,那是因为自己投了很多份简历,别说拿不拿得到 Offer,就连给面试邀的公司也都寥寥无几。小鲁班这会可真是受到了一万点真实暴击。不过小鲁班还是很乐观的,很快调整了心态,带上耳机,慢慢的走回了宿舍,正打算准备向他那神室友达摩取取经。 片刻后~ 小鲁班:666,听说你拿到了阿里的...

Wed Jan 9, 2019 18:01
用信鸽来解释 HTTPS

密码学是一门难以理解的学科,因为它充满了数学定理。但是除非你要实际开发出一套加密算法系统,否则你是没必要强制理解那些深奥的数学定理的。 如果你阅读本文的目的是想设计下一套 HTTPS 协议,那我只能抱歉的说本文的知识还远远不够;如果不是的话,那么就煮杯咖啡,轻松愉悦的阅读本文吧。 爱丽丝、鲍伯和 … 信鸽? 你在互联网上从事的任何活动(阅读这篇文章、在亚马逊上购物、上传图片等)归结到底都是从某台服务器上发送和接收信息。 这个说起来可能有点抽象,不如让我们假设这些消息都是由信鸽来传递的。我知道这个假设有些太过随意,但相信我 HTTPS 就是这样工作的,尽管它的速度快的多。 我们先不谈服务器、客户端或者黑客攻击,先来聊一下爱丽丝、鲍伯和马洛里。如果这已不是你第一次接触密码学理论,你应该会认识这些名字,因为他们经常在各种密码学文献中被提及。...

Wed Jan 9, 2019 02:04
一文快速了解Java集合框架

1. 简介 JDK1.2 引入了 Java 集合框架,包含一组数据结构。与数组不同,这些数据结构的存储空间会随着元素添加动态增加。其中,一些支持添加重复元素另一些不支持,一些支持 null,一些能自动升序打印元素。 所有这些数据结构在 java.util 包里,包含了 Collection、List、Set、Map、SortedMap 接口。这些接口的实现类有 LinkedList、TreeSet、ArrayList、HashMap 等。除了这些数据结构,java.util 包还提供了 Date、GregorianCalender、StringTokenizer、Random 这样的工具类。 2. 分类 可以按照接口、实现、算法三个方面对集合框架中的数据结构进行分类: 接口:Collection、List、Map...

Sat Jan 5, 2019 17:23
JVM日历:Java 2018大事回顾

一年过去了,是时候发布新一版 Java Advent 日历。这篇是发布的第六个日历,能够参与这一季的日历让我感到非常荣幸。比起专门讨论某个主题,我觉得更值得坐下来看看这一年发生的重大事件。这篇回顾专注于 Java 生态,内容应该不会让你感到陌生。 一月 在2017年决定开源 Java EE 后,Oracle 在1月阐明了自己的命名规范与包命名。Java EE 守护者公布了他们的立场,关于Java EE 命名和打包的联合社区公开信,文中提出了可能的解决方案。两周内公布了官方回复。Red Hat 的 Mark Little 在他的博客中进行了总结。1月份,围绕新标准化过程的相关问题还在进行深入讨论没有答案 其他重大新闻,JDK 有了一个孵化器项目。JEP12 提出了一个新的预览语言或者叫做...

Fri Jan 4, 2019 09:05

Build your own newsfeed

Ready to give it a go?
Start a 14-day trial, no credit card required.

Create account