上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 28 下一页

2013年10月9日

Java:终结器防卫者,顺便看一下 C# 如何做的。

摘要: 背景多数情况我们不需要重写finalize 方法,只有当我们需要持有未托管资源的时候才需要,而此时重写finalize 方法,只是作为一个“安全网”,不能作为常规的资源释放模式,必须提供显式的释放方法,如:close。如果某个类型重写了finalize 方法,但是这个类型是可以继承的,这就要求所有的子类如果也重写了finalize,就必须要调用父类的finalize 方法,我们有三种策略:按照约定。终结器防卫者。模板方法模式。本文就介绍第 2 种模式,此模式是昨天看《Effective Java 第二版》时学习的,本文后面会介绍 C# 是如何做的。Java版:终结器防卫者测试代码注意看注释,我 阅读全文

posted @ 2013-10-09 09:09 幸福框架 阅读(2048) 评论(1) 推荐(2) 编辑

2013年10月8日

Hibernate:如何映射聚合?

摘要: 背景DDD 是在 Hibernate 之后发现的概念,Hibernate 如何映射 DDD 中的聚合呢?本文给出一种思路。参考资料:DDD:使用EntityFramework的话,如果只为聚合根设计仓储,其它实体如何处理?。映射聚合聚合模型Order 1 package model; 2 3 import java.util.*; 4 5 public class Order { 6 private Integer orderId; 7 private String customer; 8 private Set orderItems = new HashSet()... 阅读全文

posted @ 2013-10-08 08:10 幸福框架 阅读(1833) 评论(3) 推荐(1) 编辑

2013年10月7日

技术人生:遇到挫折,不可轻言放弃。

摘要: 背景自大学期间就想好好学习Java,可惜只停留在语法层面,对于 J2EE 和 SSH 等高级主题始终没有深入学习,一方面受限于对各种工具和框架的不熟悉,一方面是自己过早的放弃了,最近利用周末和晚上学习SSH,期间也把各种工具给学习入门了,当然,这个过程不是非常顺利,好在这次检查住了。遇到挫折遇到挫折,不可轻言放弃,分析一下问题的原因,学会思考和寻求帮助。 阅读全文

posted @ 2013-10-07 13:10 幸福框架 阅读(276) 评论(0) 推荐(0) 编辑

2013年10月6日

Hibernate:不容易理解的 lock 和 merge

摘要: 背景lock 和 merge 在字面上很容易理解它们的语义,不过它们的实际行为所代表的语义范围要大一点,本文就简单的记录下来,还请朋友们多批评和指正。Lock官方的注释 1 /** 2 * Obtain the specified lock level upon the given object. This may be used to 3 * perform a version check (LockMode.READ), to upgrade to a pessimistic 4 * lock (LockMode.PESSIMISTIC_WRITE),... 阅读全文

posted @ 2013-10-06 08:43 幸福框架 阅读(9122) 评论(1) 推荐(0) 编辑

2013年10月5日

Hibernate:有了 save,为什么还需要 persist?

摘要: 背景万物皆自然,每个 API 的设计,无论是否正确,都有其意图。因此,在学习某些框架的时候,我们需要经常思考:这个 API 的设计意图是啥?本文来探讨一下 Session 中 persist 的设计意图。官方注释save 1 /** 2 * Persist the given transient instance, first assigning a generated identifier. (Or 3 * using the current value of the identifier property if the assigned 4 * gen... 阅读全文

posted @ 2013-10-05 10:05 幸福框架 阅读(11541) 评论(0) 推荐(0) 编辑

2013年10月4日

设计原则:容易遗忘的里氏替换原则

摘要: 背景里氏替换原则是:子类可以替换其父类,这里的替换是指:在语义层面和业务层面可以替换,而非技术层面可以替换(始终可以替换)。示例类图分析这里就违背了里斯替换原则,“工厂”依赖的是“编号生成器”,但是“编号生成器”的两个实现却不能随意的替换器父类。 阅读全文

posted @ 2013-10-04 21:58 幸福框架 阅读(800) 评论(0) 推荐(0) 编辑

2013年10月3日

Java:初学 Java,遇到的问题及解决方案小结。

摘要: 背景失败是成功之母,前提是没有被遗忘的失败,本文记录这几天学习 Java,自己遇到的几个问题和解决方案,希望能达到强化记忆的作用。开发环境是:Eclipse + Tomcat7.0。第一个:依赖的第三方 jar 必须拷贝到WEB-INF\lib 或 Tomcat 的 lib 目录如果只是将第三方 jar 包添加到 build path 中只能保证编译通过,不能保证运行成功,关于如何配置运行期间类型的加载路径,我还没有查资料。第二个:使用了 == 号java 中不能重写运算符,对于 Class 和 Interface 来说,equals 的语义是值比较,== 的语义是引用比较。第三个:在 Tom 阅读全文

posted @ 2013-10-03 10:08 幸福框架 阅读(4426) 评论(4) 推荐(2) 编辑

2013年10月2日

Java:Spi 小实战

摘要: 背景Java 中区分 Api 和 Spi,通俗的讲:Api 和 Spi 都是相对的概念,他们的差别只在语义上,Api 直接被应用开发人员使用,Spi 被框架扩张人员使用,详细内容可以看:http://www.cnblogs.com/happyframework/p/3325560.html。Java类库中的实例代码1 Class.forName("com.mysql.jdbc.Driver");2 Connection conn = DriverManager.getConnection(3 "jdbc:mysql://local... 阅读全文

posted @ 2013-10-02 08:17 幸福框架 阅读(10388) 评论(2) 推荐(0) 编辑

2013年10月1日

Java:volatile 关键字的一点理解

摘要: 背景学了六年C#,一直没有使用过volatile,对多线程编程也是偶尔才会使用,这次学习 Java 又遇到了volatile,准备稍微深入的了解一下。volatile 的作用?几乎所有支持这个关键字的语言给出的解释都一样:阻止编译器对字段访问和赋值的优化,直接从字段所在的空间取值(可能是值,也可能是引用),而非引入寄存器等优化措施(跟编译器的实现有关)。使用volatile 后对,字段的访问(this.field)和字段的赋值(this.filed = xxx)就是原子操作了,在多线程环境下,不需要使用synchronized 进行访问,否则的话必须使用synchronized 进行访问。何时 阅读全文

posted @ 2013-10-01 09:36 幸福框架 阅读(1955) 评论(3) 推荐(1) 编辑

2013年9月30日

Java:准备学习的高级主题

摘要: ClassLoaderGCConcurrentTransactionJTAJPAJDBCJNDIJNIJNAJNativeOSGIJMSJSTLELServletNIOAntMavenGradle 阅读全文

posted @ 2013-09-30 12:36 幸福框架 阅读(624) 评论(0) 推荐(0) 编辑

2013年9月29日

ASP.NET MVC:看 MVC 源码,学习:如何将 Area 中的 Controller 放到独立的程序集?

摘要: 背景本文假设您已经熟悉了 ASP.NET MVC 的常规开发方式、执行模型和关键扩展点,这里主要说一下如何使用 ASP.NET MVC 的源代码解决一些问题。如何将 Area 中的 Controller 放到独立的程序集?为了更好的组合代码,我们都会使用 Area 划分我们的项目,也会把 Controller 移动到独立的程序集,多数情况这回导致问题。项目结构问题出现在哪里了?初步原因分析是 DefaultController 的 Namespace 不匹配 TestAreaRegistration 的 Namespace,我们把DefaultController 的 Namespace 修改 阅读全文

posted @ 2013-09-29 09:47 幸福框架 阅读(2668) 评论(4) 推荐(0) 编辑

2013年9月28日

Tomcat:基础安装和使用教程

摘要: 背景此文记录了 Tomcat 的基本使用方法,主要为了强化记忆。安装步骤第一步:下载和安装 Java下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html。安装并设置JAVA_HOME环境变量:第二步:下载和解压 Tomcat下载地址:http://tomcat.apache.org/。第三步:修改端口号.NET 我使用的是 80xx,Php 我使用的是 81xx,Java 我使用的是 82xx。修改D:\apache-tomcat-8.0.0-RC3\conf\server.xml: 1 2 3 ... 阅读全文

posted @ 2013-09-28 13:47 幸福框架 阅读(102718) 评论(4) 推荐(8) 编辑

2013年9月27日

Javascript:看 Javascript 规范,学 this 引用,你会懂的。

摘要: 背景Javascript 的 this 是我的心病,多数情况下知道其运行结果,个别变态的场景下,就给不出解释了,昨天一次偶然的机遇让我有兴趣尝试看一看 Javascript 语言规范,一看就悟了。偶然的机遇就是一篇文章:http://www.cnblogs.com/aaronjs/p/3339107.html,这篇文章中关于 this 的部分我错了1/4。this待分析程序 1 var x = 10; 2 var foo = { 3 x: 20, 4 bar: function () { 5 var x = 30; 6 return this.x... 阅读全文

posted @ 2013-09-27 10:59 幸福框架 阅读(2557) 评论(7) 推荐(5) 编辑

2013年9月26日

T4:T4 笔记 + Trait 示例

摘要: 背景官方教程:http://msdn.microsoft.com/en-us/library/vstudio/bb126445.aspx。如果开发环境或编译器内置了对模板的支持而没有善加利用,就算是一只浪费了。简单的使用模板就是代码生成器,也可以更细致的使用模板,比如模拟Trait。Trait示例Dog1 namespace T4Study.Trait2 {3 public partial class Dog4 {5 public string Name { get; set; }6 }7 }Man1 namespace T4Study.Trait2 {... 阅读全文

posted @ 2013-09-26 15:45 幸福框架 阅读(5656) 评论(5) 推荐(1) 编辑

2013年9月25日

Java:Java快速入门

摘要: 你好,世界!源代码组织方式Java程序由package+class组成,package对应目录的相对路径,class对应文件,如E:\Workspaces\MyEclipse 10\JavaStudy\src\com\happyframework\javastudy\hello\Hello.java1 package com.happyframework.javastudy.hello;2 3 public final class Hello {4 public static void hello(){5 System.out.println("hello!");6 ... 阅读全文

posted @ 2013-09-25 00:10 幸福框架 阅读(51179) 评论(38) 推荐(50) 编辑

2013年9月24日

.NET:C#的匿名委托 和 Java的匿名局部内部类

摘要: 背景这几天重温Java,发现Java在嵌套类型这里提供的特性比较多,结合自身对C#中匿名委托的理解,我大胆的做了一个假设:Java的字节码只支持静态嵌套类,内部类、局部内部类和匿名局部内部类都是编译器提供的语法糖,这个假设目前没法验证(看不懂字节码),本文先来看一下C#是如何为我们提供的这种语法糖。实验测试代码 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace CS. 阅读全文

posted @ 2013-09-24 13:12 幸福框架 阅读(4007) 评论(0) 推荐(1) 编辑

2013年9月23日

FAQ:如何修改领域模型?

摘要: 问答部分问:如何修改领域模型?答:一般来说我们有两种选择,这两种选择也是两种价值观的体现(乐观和悲观)。第一种:使用UI传递过来的DTO在应用层重建Domain Model,然后执行修改,DTO更多的表达了一种结果。1 public class Application2 {3 public void Update(DTO dto)4 {5 var entity = this.AutoMap(dto);6 7 repository.Update(entity);8 }9 }第二种:使用Repository从Database中重建Domain... 阅读全文

posted @ 2013-09-23 12:55 幸福框架 阅读(1294) 评论(2) 推荐(1) 编辑

2013年9月22日

设计原则:对象之间的关系

摘要: 背景我们执着于面《向对象编程》,而多数情况我们都在使用《面向类型编程》,今天简单快速的回顾一下对象的之间的关系。先谈谈类型之间的关系类型之间的依赖,这里进一步划分为两类:显式依赖:在参数中显式的表达了依赖。隐式依赖:没有在参数中显式的表达依赖,直接在方法中创建了某个类型的实例,然后使用。类型之间的关联从某种程度上来讲也属于一种依赖,在这个维度讲,也可以将其划分为两类:显式依赖:使用构造方法或方法注入关联。隐式依赖:没有使用构造方法或方法注入关联,直接在构造方法中创建了某个类型的实例,然后赋值给关联。集合关联属于整体和个体的关系,复合关联属于整体和部分的关系,两者的区别在于语义上,技术上表现非常 阅读全文

posted @ 2013-09-22 10:20 幸福框架 阅读(2313) 评论(4) 推荐(2) 编辑

2013年9月21日

FAQ:仓储实现为什么在基础设施层?

摘要: 问答部分问:仓储实现为什么在基础设施层?答:领域模型包含三种元素:实体、值对象和服务,这三种元素都可以以某种形式使用仓储,为了保证领域的纯粹性,我们引入了仓储接口,仓储的具体实现在基础设施层中,仓储接口位于领域层中。问:仓储实现能在领域层吗?答:技术可以,从关注点分离上讲,仓储实现和领域模型有不同的关注点,视乎没有任何必要将他们划分到一个层,问:仓储接口能在基础设施层吗?答:技术上不可行(.NET中是如此),仓储接口依赖领域模型,领域模型依赖仓储接口,会存在双向依赖,在.NET中会编译不通过,在其他平台也不见得是好的选择。参考文章http://www.cnblogs.com/happyfram 阅读全文

posted @ 2013-09-21 14:43 幸福框架 阅读(1667) 评论(0) 推荐(1) 编辑

2013年9月20日

Go:《Go语言 云动力》

摘要: 背景中秋快速的读了一遍《Go语言 云动力》,对Go有一下几点感觉:在静态类型和动态类型之间取得了非常好的平衡,隐式接口实现会被后续的语言借鉴(希望C#能借鉴一下)。缺乏异常处理机制,这点让我有点不爽了。备注考虑到企业应用在可预见的范围内还是以Java和C#为主,下一步准备实战一下Java(之前看过不少书,没机会实战)。 阅读全文

posted @ 2013-09-20 22:40 幸福框架 阅读(754) 评论(0) 推荐(0) 编辑

上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 28 下一页

导航

我要啦免费统计