企业架构专栏最新文章

【SSH进阶之路】Hibernate映射——多对多关联映射(八)

上篇博文【SSH进阶之路】Hibernate映射——一对多关联映射(七),我们介绍了一对多关联映射,它是多对多关联映射的基础。 多对多映射是现实生活中最常见的映射,也是最容易理解的映射。废话少说,直接开始。   映射原理   不论是单向关联还是双向关联都是通过第三张表,将两个表中的主键放到第三张做一个关联。用第三张表来解决可能会造成数据冗余的问题。   举例   一个用户(Use ...
jiuqiyuliang 有690人浏览 2014-11-22 08:14 专栏:Hibernate进阶之路

大话重构连载19:大对象的演化过程

很好,我们终于迈出了重构的第一步,而这第一步我们瞄准了代码问题的重灾区——超级大函数。超级大函数之所以是代码问题的重灾区,就是因为它们 ...
fangang 有2237人浏览 2014-11-17 09:18 专栏:重构,是这样干的

【SSH进阶之路】Hibernate映射——一对多关联映射(七)

上上篇博文【SSH进阶之路】Hibernate映射——一对一单向关联映射(五),我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证端(IdCard),但是反过来,不能从身份证端加载人得信息。 上篇博文【SSH进阶之路】Hibernate映射——一对一双向关联映射(六),双向关联映射解决了单向关联映射只能从一端加载信息的缺陷,当然,双向关联映射并不影响存储,只影响加载。 ...
jiuqiyuliang 有646人浏览 2014-11-16 08:10 专栏:Hibernate进阶之路

大话重构连载18:最常见的问题

使用抽取方法,虽然道理十分简单,但实际操作起来却并不是那么容易的。完成抽取方法最大的困难,就是如何处理抽取函数与原函数的数据交换。如同 ...
fangang 有2217人浏览 2014-11-02 17:15 专栏:重构,是这样干的

【SSH进阶之路】Hibernate映射——一对一双向关联映射(六)

上篇博文【SSH进阶之路】Hibernate映射——一对一单向关联映射(五),我们介绍了一对一的单向关联映射,单向是指只能从人(Person)这端加载身份证 ...
jiuqiyuliang 有514人浏览 2014-10-31 08:39 专栏:Hibernate进阶之路

大话重构连载17:抽取方法的实践

说了那么多理论,我们来看看怎样使用抽取方法来重构遗留系统。如前所述,重构的过程首先是阅读程序代码,边阅读边整理程序。将功能相对独立的代码段放在一起,在前面加上注释。调整一些程序的顺序,将相关的代码尽量放在一起,但要保证程序执行的结果不会发生改变。比较典型的,将变量的定义与使用变量的代码放在一起。这个步骤比较实用,因为许多的遗留系统,其代码都有一个坏毛病,就是在程序开始时定义一大堆变量,但要弄清这些变 ...
fangang 有2348人浏览 2014-10-29 08:57 专栏:重构,是这样干的

【SSH进阶之路】Hibernate映射——一对一单向关联映射(五)

【SSH进阶之路】Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库。 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二),小编搭建了基本Hibernate的开发环境,并做了一个简单实例,对它的基本原理有了一个理性的认识。 【SSH进阶之路】Hibernate基本映射(三),我们介绍了Hibernate的基本映 ...
jiuqiyuliang 有606人浏览 2014-10-23 08:15 专栏:Hibernate进阶之路

【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)

【SSH进阶之路】Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库。 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二),小编搭建了基本Hibernate的开发环境,并做了一个简单实例,对它的基本原理有了一个理性的认识。 【SSH进阶之路】Hibernate基本映射(三),我们介绍了Hibernate的基本映 ...
jiuqiyuliang 有897人浏览 2014-10-22 08:15 专栏:Hibernate进阶之路

大话重构连载16:超级大函数

事情总是这样的:当我们对一个遗留系统一忍再忍,再忍,忍,还要忍……终于积攒到某一天,实在忍无可忍了,拍案而起,不能再忍了,重构!!!事情就这样发生了。然而,在这时你突然发现,重构的工作千头万绪,真不知从何开始。堆积如山的问题此起彼伏,期望修改的设计思绪万千。这里有个想法,那里有个思路,什么都想做,却什么都做不了,真是脑子里一团乱麻。这时候,没有一个合理的步骤,清晰的计划,瞎干蛮干是十分危险的,它会为 ...
fangang 有2015人浏览 2014-10-18 20:49 专栏:重构,是这样干的

【SSH进阶之路】Hibernate基本映射(三)

【SSH进阶之路】Hibernate基本原理(一) ,小编介绍了Hibernate的基本原理以及它的核心,采用对象化的思维操作关系型数据库。 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二),小编搭建了基本Hibernate的开发环境,并做了一个简单实例,对它的基本原理有了一个理性的认识。   这篇博客小编介绍Hibernate的经典内容:对象关系映射。主要介绍映射的基本概念 ...
jiuqiyuliang 有649人浏览 2014-10-17 08:19 专栏:Hibernate进阶之路

【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)

Hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的。这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和原理,到最后可能什么也学不会,从实践入手,熟能生巧,思想和原理自然而然领悟。   上篇博文:【SSH进阶之路】Hibernate基本原理,我们介绍了Hibernate的基本概念、Hibernate ...
jiuqiyuliang 有1050人浏览 2014-10-07 08:23 专栏:Hibernate进阶之路

【SSH进阶之路】Hibernate基本原理(一)

在开始学Hibernate之前,一直就有人说:Hibernate并不难,无非是对JDBC进一步封装。一句不难,难道是真的不难还是眼高手低? 如果只是停留在使用的层面上,我相信什么技术都不难,看看别人怎么做的,你也可以很快上手。 这难道是学习的最终目的吗? 不是,绝对不是。我们需要了解这门技术的基本概念,它到底是什么,它是干什么的,它有什么优缺点。下面我就带领大家一起回顾一下Hibernate ...
jiuqiyuliang 有1083人浏览 2014-09-22 10:05 专栏:Hibernate进阶之路

大话重构连载15:采用Mock技术完成测试

第五次重构我们引入了数据库的设计,用户信息要从数据库中读取,问候语库存储在数据库中,并支持添加与更新。数据库的引入使自动化测试变得困难了,因为数据状态总是变化着的,而这种变化使得测试过程不能复现,这是我们不愿看到的。因此,我们在设计时将业务与数据库访问分离,形成了UserDao与GreetingRuleDao。此时,我们的设计应当遵从“依赖反转”原则,即将UserDao与GreetingRuleDa ...
fangang 有2289人浏览 2014-09-21 11:08 专栏:重构,是这样干的

大话重构连载14:我们是这样自动化测试的

说了那么多,让我们用示例看看,系统重构是应该怎样做自动化测试的。还是回到前面那个HelloWorld的例子(详见 3.3 小步快跑是这样玩的),该类中有一个sayHello()方法,只要我们输入当前的时间与用户名,就返回对该用户的问候语。如果当前时间是上午,则返回“Hi, XXX. Good morning!”;如果是下午,则返回“Hi, XXX. Good afternoon!”;如果是晚上,则返 ...
fangang 有2310人浏览 2014-09-18 00:52 专栏:重构,是这样干的

大话重构连载13:自动化测试——想说爱你不容易

正如许多事情都有其两面性一样,测试方法也是这样。要保证测试方法正确,最简单、最直观地想法就是多写些测试用例,从更多地角度去测试,但这必然增加我们的测试成本。小步快跑要求我们频繁进行测试,假如我们重构的周期是20分钟,但测试却要花掉10分钟,那么这样的成本就实在太大了。假如这种测试还是开发人员手工测试,每天都有对同样的测试反复执行数十遍,那么开发人员估计就要疯掉了。 你可能立即就想到自动化测试了。是 ...
fangang 有2464人浏览 2014-09-09 10:48 专栏:重构,是这样干的

大话重构连载12:你不能没有保险索

通过前面的描述你已经对重构中“小步快跑”的开发模式有了一个清楚的认识。学会和习惯小步快跑的开发模式,对于重构工作极其重要,因为它让这种 ...
fangang 有1984人浏览 2014-09-08 06:59 专栏:重构,是这样干的

对象关系行为模式之延迟加载

形象化设计模式实战     HELLO!架构   一、概念 Lazy Load:一个对象,它虽然不包含所需要的所有数据,但是知道怎么获取这些数据。 延迟加载貌似很简单,就是在数据需要时再从数据库获取,减少数据库的消耗。但这其中还是有不少技巧的。     二、实现延迟加载 实现Lazy Load主要有四种方法:延迟初始化、虚代理、值保持器和重影。   (1)延迟初始化(Lazy ...
home198979 有2229人浏览 2014-09-03 09:42 专栏:HELLO!架构

【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接地气了。作为初学者,有点小小收获,想通过以博文的形式和大家一起分享,共同进步,在更新博文的过程中难免有认识不足的地方,还请各位大牛提出宝贵的建议,对于好的建议一定虚心接受,认真学习 ...
jiuqiyuliang 有1510人浏览 2014-08-29 07:56 专栏:Spring进阶之路

【SSH进阶之路】Struts + Spring + Hibernate 进阶开端(一)

Long Long ago,就听说过SSH,起初还以为是一个东东,具体内容更是不详,总觉得高端大气上档次,经过学习之后才发现,不仅仅是高大上,更是低调奢华有内涵,经过一段时间的研究和学习SSH框架的基本原理与思想,总算接地气了。作为初学者,有点小小收获,想通过以博文的形式和大家一起分享,共同进步,在更新博文的过程中难免有认识不足的地方,还请各位大牛提出宝贵的建议,对于好的建议一定虚心接受,认真学习 ...
jiuqiyuliang 有1510人浏览 2014-08-29 07:56 专栏:Hibernate进阶之路

对象关系行为模式之工作单元

一、概念 Unit of Work:维护受业务事务影响的对象列表,并协调变化的写入和并发问题的解决。其UML结构大致如下: 工作单元记录在业务事务过程中对数据库有影响的所有变化。操作结束后,作为一种结果,工作单元了解所有需要对数据库做的改变,统一对数据库操作。     二、为什么要使用工作单元? 如果没有使用工作单元,可以在每次修改对象模型时对数据库对得相应修改,但这样会产生大量规模很 ...
home198979 有2298人浏览 2014-08-27 09:40 专栏:HELLO!架构

企业架构热门专栏

更多专栏>>

企业架构热门文章

博客专栏评论

认真看错误代码,有时候重启电脑就行了 醉了 我把数据库配置写死不用配置文件 改 UserService ...
xxx不是你可以惹得 评论了 第十六章 综合实例——《跟我学Shiro》
holyselina 写道您前面说到能获取调用是的参数数组,我想问下,我想在通知方法中,获取当前调用代 ...
dagger9527 评论了 【第六章】 AOP 之 6.6 通知参数 ——跟 ...
Access denied for user 'root'@'localhost' (using pa ...
xxx不是你可以惹得 评论了 第十六章 综合实例——《跟我学Shiro》
只有@AspectJ支持命名切入点,而Schema风格不支持命名切入点。有一个问题不太明白Schema ...
dagger9527 评论了 【第六章】 AOP 之 6.5 AspectJ切入点语法 ...
支持虽然会迟到,但永远不会缺席!
dagger9527 评论了 【第四章】 资源 之 4.3 访问Resource ...
valiant025 写道很经典,很期待谢谢支持,马上出来新的
springcloud关注者 评论了 (七)Java版Spring Cloud B2B2C o2o鸿鹄云 ...
公园美丽 写道谢谢分享,期待后面的文章,受益匪浅谢谢,马上出来
springcloud关注者 评论了 (七)Java版Spring Cloud B2B2C o2o鸿鹄云 ...
谢谢分享,期待后面的文章,受益匪浅
公园美丽 评论了 (七)Java版Spring Cloud B2B2C o2o鸿鹄云 ...
很经典,很期待
valiant025 评论了 (七)Java版Spring Cloud B2B2C o2o鸿鹄云 ...
希望帮助更多的朋友
springcloud关注者 评论了 (六)Java版Spring Cloud B2B2C o2o鸿鹄云 ...
Global site tag (gtag.js) - Google Analytics