- 浏览: 82968 次
- 性别:
- 来自: 大连
最新评论
-
magicyang919:
很期待,加油做啊。讲清楚how,和why,更重要的是why,重 ...
原来有关Spring核心部分的源代码分析 -
magicyang919:
这个必须顶,我们要知道的就是为什么spring这么设计,而不是 ...
Spring框架核心源代码的分析及其感受-1 -
pastore123:
分析的很好,思维过程讲的很好,通俗易懂
Spring框架核心源代码的分析及其感受-1 -
gbllty1981:
一个简单的基于约定优于配置(Coc)的对象工厂实现 -
沙舟狼客:
其实在开发中有好多都是固定模式的,所以应该用约定;这样维护起来 ...
约定优于配置的一个思考
文章列表
我相信很多设计者、开发者和用户们,对CLI会藐视地说“太丑了,而且不好使用!”,于是乎大家似乎设计一个APP时最先想到的使用GUI(桌面的GUI或者Web),似乎用起来更加简单和方便!我的想法是,这对一些任务(比如编辑文档或者观看视频)是比较适合GUI的,因为所见即所得!但是某些情况下,我们会认为CLI会更有优势,比如一个经常性的任务:清理日志,或者备份等等,如果需要你每次都需要点击各种菜单进入一个APP,然后在APP上点来点去来完成看起来很简单的事情的时候,也许你就不那么认为GUI是个好主意了,代替地,如果我们能开发一个脚本,每次执行这样的经常性的任务时,只需要在command line里面打 ...
不知道大家如何认为的,一个编译好的组件,或者模块,仅仅是给其他程序调用使用的吗?这个不是这个问题的本质面,
我认为是这个API或者模块是给人设计的,一般而言,每一个组件或者模块都包含很多文档(也可能是XML注 ...
Baidu 写道
约定优于配置(Convention Over Configuration)
约定优于配置是一个简单的概念。 系统,类库,框架应该假定合理的默认值,而非要求提供不必要的配置。 流行的框架如 Ruby on Rails 和 EJB3 已经开始坚持这些原则,以对像原始的 EJB 2.1 规范那样的框架的配置复杂度做出反应。 一个约定优于配置的例子就像 EJB3 持久化,将一个 特殊的Bean持久化,你所需要做的只是将这个类标注为 @Entity 。 框架将会假定表名和列名是基于类名和属性名。 系统也提供了一些钩子,当有需要的时候你可以重写这些名字,但是,在大部分情况下,你会发现使 ...
从InfoQ得来一篇文章
[
怎么样把NoSQL引入到我们的系统架构设计中,需要根据我们系统的业务场景来分析,什么样类型的数据适合存储在NoSQL数据库
中,什么样类型的数据必须使用关系数据库存储。明确 ...
为什么必须用IOC(DI),实际上是出于在设计上的一种关注分离观念,使得系统各部分独立演化,不相互影响,使得系统能够适应环境变化的要求。
但是问题是:A:依赖的判定,现在依赖于XML配置文件的事先说明,大量的XML ...
http://www.infoq.com/cn/articles/cf-java-generics
Java泛型(generics)是JDK 5中引入的一个新特性,允许在定义类和接口的时候使用类型参数(type parameter)。声明的类型参数在使用时用具体的类型来替换。泛型最主要的应用是在JDK 5中的新 ...
昨夜电闪雷鸣。雷似耳边炸响,闪电似要把木屋点燃。耀眼的闪电近在咫尺。感到人在天地相连的旷野人之中,人不如蚁微不足道。这是我有生以来最令人头皮发麻的一次经历。睁大眼睛神经高度紧张,滚滚雷声犹如大炮轰鸣,接连不断的闪电我怕把眼睛刺盲。紧闭双眼天地间只有雷声和闪电。河里的水涨起
3
米
多。
河水落下去了。用混浊的河水洗脸,洗后白毛巾上全是黄土。打一碗水给“阿勇”,它晃晃头喉头发出的声音似乎在说“这种水我怎么喝”。
昨夜又演雷电交响曲。天地间只有我和狗。这里不似国内,天地间那么近。当黑云压下来,天地相接。感觉这就是地狱。
天地 ...
人蚁大战。“华夫饼”花生米上蚂蚁成千上万。我一个人力战群雄,最后还是我赢了。把吃食抢回来一半。先别高兴
蚂蚁可不在乎失败,后援多着呢!说不定小蚂蚁搬来大蚂蚁。
这地方大蚂蚁可厉害。山上到处是它们的 ...
[置顶] 吾父马达加斯加之旅-1
- 博客分类:
- 生活随想
卧病在床,周围死寂一般。只能听到苍蝇嗡嗡,
4.5CM
长的黑色细腰蜂在我的床头对应的天棚下筑巢。这种细腰蜂真是天才的建筑师和雕塑大师它筑的巢外形犹如我小时候抓的生长在大树上胖胖的绿绿的大虫子,巢长约
1.2M
,粗
20CM
。现在它正飞来飞去忙着哺育后代。
举目远眺,荒山连绵。偶见星星点点的绿色植物才略感这里还有生机。忽然想起国内的一首歌——我是一只来自北方的狼——体味苍凉。人都说首都——塔纳那利佛小黑蚊子咬人很厉害,这里可是大黑蚊子。昨天晚上打死一只,还好没让它喝到我的血。可一不小心让一个大麻色的蚊子把我的血喝了个够,一巴掌下去手掌上全是鲜红色的血。让它 ...
很多人这样设计Windows Service,希望在某种条件下,比如某个事件发生后,希望Windows Service弹出一个窗体!
其实这非常不正确,不管是C#,VB.net还是C++创建的Windows Service是被OS windows子系统调用的和维护的,
恰恰它没有桌面站,OS在启动Windows子系统的时候,会默认创建两类东西,就是有窗口站的桌面(其实也是一个窗口以及窗口树结构),另外一个就是无窗口站的环境,Windows Service恰恰运行在这个环境中,其含义是没有客户操作区的表面,那么即使你在Windows Service的OnStart方法中new一个Window对 ...
Java,C#,C/C++等等的高级语言,无论是平台独立语言java/C#等,还是非独立的,如C/C++等,它们最终的代码都要有CPU和OS内核的进程和线程调度机构来执行的(对于java/C#这样的语言来说,很多人认为是在JVM/CLR这样的虚拟机上运行的,其实是有错误的,更加准确的说是,JVM/CLR提供了一种原语,比如bytecode/MSIL,当其编译时,由编译器将高级语法编译成bytecode/MSIL,然后JVM/CLR将这些高层的“汇编”翻译成二进制代码(JIT干的事情),这些二进制代码才是真正的可以执行的指令,这些指令时以线程的形式被调度给CPU执行的,所以根本上而言线程的问题和机 ...
进程是一个执行环境,包含了私有的进程内存空间、句柄表和其他的一些东西,为线程的存活提供了一个环境,这句话其中的含义是当创建进程时往往要创建一个默认的线程,线程是具体干活的,当一个进程中的最后一个线程被CPU执行完毕后,进程也就消亡了。这些事情都是OS内核的进程和线程管理干的事情。了解这些对使用一些高层语言来做多进程或者多线程的程序时就能在了解其底层原理的基础上发挥更大的创作空间(对于线程的竞争,同步等等的问题,其实就是OS的问题,高层语言不过还是利用OS的能力做到这些罢了)
上面是一段对进程和线程关系的描述,但是本文的重点是比较windows和Linux在这方面的不同之处!
Li ...
发现不少人用GDI开发一些图形程序,它位于Windows图形子系统中,是设备无关的图形引擎,所以很多人认为游戏开发也可以使用GDI,这种观点看起来没有错,实际上GDI也确实可以用来开发游戏,但是它必须依赖于HAL(硬件抽象层)中的视频端口驱动程序以及视频设备(显卡)驱动程序通信才能通知具体设备渲染出画面,效能上比较差,如果一个大型程序用GDI做运行起来就比较吃力(我的观点),所以微软还提供了DirectX包,它可以直接操作硬件(所以起名叫做Direct),效率比较高(它可以越过HAL和驱动程序,直接和设备驱动通信),所以现在的2D/3D图形引擎基本是使用DirectX作为底层来开发,所以基本上G ...
从上一篇,我知道了我们想get的 Bean是怎么实例化出来的,也知道了依赖注入实际是发生在BeanWrapperImpl这个类里面的,接下来我们来看看这个类的实现(也就是applyPropertyValues(beanName, mbd, bw, pvs) 方法里面干的事情):
....
...
在上一篇中,我们找到了doCreateBean方法,我绕了半圈才找到create bean的实际入口:
BeanWrapper instanceWrapper = null;
........
if (instanceWrapper == null) {
//只创建Bean,但是没有注入
instanceWrapper = createBeanInstance(beanName, mbd, args);
}
.......
///这就是依赖注入的方法
populateBean(beanName, mbd, instanceWrapper);
if ...