- 浏览: 1682062 次
- 性别:
- 来自: 北京
最新评论
-
nucleus:
貌似是因为图片的路径是http的缘故:http://dl2.i ...
spring container 实现分析:BeanWrapper -
nucleus:
nucleus 写道BeanWrapper这一块相关的类结构如 ...
spring container 实现分析:BeanWrapper -
nucleus:
BeanWrapper这一块相关的类结构如下图:文中提到的上述 ...
spring container 实现分析:BeanWrapper -
leshy:
inventory.sort(Comparator.compa ...
java8 lambda表达式学习总结 -
Leisurez:
di1984HIT 写道xuexile~hahaha~
activemq的几种基本通信方式总结
文章列表
前言:
最近在学着做leetcode上面所有的习题。这里列举出了很多公司面试的问题,撇开功利的目的,对这些问题的研究对于学习总结也有很重要的意义。于是想尝试一下把自己解决问题的思路以及详细的解答都记录下来。 ...
前言
以前曾经用C#也开发过几年的东西。在那里对相关语言和开发都有了一定的了解。这里,结合自己当初的一些体会和见识把一些比较好的书籍也和大家分享一下。这一系列的开发语言相关书籍大部分都是自己了解和接触过的。而且自己当初也用过这些语言做过开发。对于自己没接触过的语言,不评价,也不会乱做推荐。
C#入门
Head First C#
作为C#入门的书籍来说,其实还是比较多的。如果接触过其他的编程语言,比如Java, C++,再来看C#还是很容易上手。C#的发展比较快,在最初看起来和Java很相似的基础上增加了很多语法糖以及函数式编程语言的思想和特性。这些东西都大大加快了 ...
前言:
最近因为工作变动的一些因素,好久没有过来更新博客了。学习还是应该坚持,不应该荒废。正好自己也做过几年的Java开发工作,在这里将一些比较好的学习资料列举一下和大家分享一下。也算是给入门的同学一个帮助吧。
Java基础
Head First Java
这本书可以说是秉承了Head First系列的书籍的风格,图文并茂,对java的基础知识介绍很深入浅出。让人看起来很容易理解。书出版的时间是2005年,稍微有点老。对于新的Java特性没有介绍。很不错的入门书,让人看了之后上手很快。再啰嗦一句,Head First系列的书以最早的Head Firs ...
前言
在前面的文章里我提到,要学习某项技术其中相关学习材料的选择非常重要。如果选择错误的材料则损失的不仅仅是钱财。这里,我就针对一些比较好的学习材料做一个收集和整理。希望能够给学习相关技术的人提供 ...
前言
前几天看到一系列的文章,作者对市面上的一些劣质书籍深恶痛绝,于是针对一本很垃圾的书从头到尾进行了批判。这一系列文章在博客园引起了不小的反响。现在不少朋友也深受垃圾书之扰。学习和买到一本垃圾的书籍,不但劳民伤财而且还误人子弟。综合自己过去的学习和工作过程中,也碰到过类似的情况。在这里算是总结一些自己读书和选书的经验,希望能够让后来人少走弯路。另外,我们实际工作中牵涉到的相关技术大部分都有比较优秀的书籍涵盖到了。既然现在垃圾书泛滥让人防不胜防,我们又何必这么一本本的去抓去较劲呢?而且这些烂书如海,一个个的去挑,什么时候是个头呢?不如采用一个类似于防火墙中白名单的思路,把牵涉到不同 ...
简介
在之前的文章里我们讨论过一些程序构建ProxyFactory的方式来实现AOP。然而,上述的方式有一些不足,就是我们实际实现的逻辑需要显式的和添加的切面进行耦合。我们在真正的应用里不太可能这么去用。更多的会是使用xml配置文件或者annotation的方式来实现。像这篇文章就具体介绍过基于annotation的应用。那么,像采用这两种方式的AOP实现在spring里是怎么实现对它们的支持的呢?这就是我们要讨论的重点。
XML配置示例
在这里,我们先看一个基于xml配置的aop示例。程序的依赖配置如下:
<?xml version="1.0& ...
简介
在之前的文章里,我们讨论了spring IOC容器的大致结构和构建bean对象关系网的流程。在那里,bean对象的加载和解析主要是通过纯xml文件解析实现的。但是从spring 2.0以后,对于bean对象的构建和关联可以通过annotation来实现。那么,这一部分的实现细节是怎么样的呢?这就是本文要探讨的重点。
应用示例
还是老样子,我们先看一个示例,根据这个示例的结果再来讨论引出的问题。我们创建一个普通的工程,它的依赖如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" ...
java annotation基础
- 博客分类:
- java
简介
之前有一篇简短的文章讨论过annotation的相关概念以及它的应用。annotation是java里一个比较有意思的特性。它本身相当于对代码中一种元数据的标记。在程序编译的时候,它和没有添加annotation的代码看起来没有多少差别。那么,annotation到底是用在哪里的呢?我们一般是怎么来处理它的呢?这里针对这几个方面进一步的讨论。
几个常见的annotation
在讨论具体的annotation概念之前,我们在很多程序代码里已经接触过一些相关的annotation以及它的应用。一个典型的就是@Override。比如说当我们有如下的代码:
pub ...
简介
在之前的文章里,我们讨论过作为spring IOC容器实现里最底层的一部分:BeanWrapper。那里,我们主要了解如何从获取的元数据里来构造一个bean对象的过程。当然,从更广阔的角度来看,这个容器框架里需要的是能够构建一个bean对象的容器,我们可以通过它来方便的获取所需要的bean对象,而不是仅仅单独设置好的某一个对象。在spring框架里,要构造这么一个容器,就需要BeanFactory, ApplicationContext等一系列类的合作。在这里,我们结合它们的实现细节来分析探讨一下它的设计思想。
示例
在讨论它们的具体实现之前,我们先看一个示 ...
简介
在之前的文章里我们讨论过AOP技术的应用基础。在常用的几种方法里,我们比对了decorator pattern,InvocationHandler, CGLib和AspectJ。这些方法都是为了在现有设计和代码的基础上去增加新的功能而不需要对原有的部分做什么 ...
简介
我们在使用一些OOP相关的编程语言的时候,就会受到很重的OOA/D思想影响。关于各种职责的划分、各种设计模式的思想和变化等等。只为了能够更加轻松灵活的实现各种业务和需求变化。 当然,在一定程度上,当我们 ...
简介
在使用spring bean的过程中,有一个很重要的话题就是bean的生命周期。由于spring本身也是一个依赖注入的框架,它本身就包含有bean的创建和管理。而且,它也提供了很多bean管理的接口。我们在使用框架的时候该如何去选择也是一个值得探讨的话题。
Bean生命周期
粗看bean的生命周期,感觉会有点困惑,因为spring提供了很多的选项,像实现接口InitializingBean, DisposableBean,添加annotation @PostConstruct, @PreDestroy以及在bean的配置文件里设置init-method, des ...
简介
在之前的一篇文章里, 我们基于《Expert One-on-One J2EE Design and Development》这本书里给出的spring框架雏形讨论了实现这么一个依赖注入的框架的大致细节。随着这么些年整个spring框架的演化,里面的很多实现细节已经发生了比较大的变化。我们有必要结合目前最新的代码去探究一下。另外,如果结合构建这么一个框架的一些思想来讨论的话,相信也会有更加大的收获。因为框架实在是非常复杂,因此对于实现细节的讨论要分成几个篇章来写。
框架实现的几个点
之前有两篇文章分别讨论过控制反转和依赖注入的概念以及在spring中如何实现依 ...
简介
通常我们在日常的应用开发中,日志起到一个非常重要的作用。对于不同的环境来说,我们不可能像开发环境那样有一个完善的支持。这时候日志的作用就更加凸显出来了。日志不仅仅用于开发的时候排查错误,在不同的环境下,它还可以用来检测系统的运行情况,甚至监控系统的性能指标。所以,我们有必要对于日志的来由和使用做一个深入的理解。这里结合目前最常用的日志框架log4j2来进行讨论。
log应用的几个要素
为什么要记log
我们都知道,在应用开发里,针对不同的环境,如何知道我们系统是正常运行的呢?这里几乎唯一能够依靠的就是log了。所以,问题不在于需不需要log,而是该如何去配 ...
简介
在之前的一些学习过程当中,对spring框架的一些设计思路和基本实现做了一些了解。结合书本的描述和自己的一些分析做一个初步的分析。这里是针对最早期spring框架实现的一个雏形进行的分析,和现在最新版本的比 ...