六点J2EE应用中运用“配置”的最佳实践

本文所提到的所有内容的前提是使用一些开源框架搭建简单的J2EE应用时,对配置的运用方面的一些总结出来的最佳实践。
1. 尽最大的可能简化你的配置
这一点似乎是基本原则,没有人会愿意多写一行代码,配置也是代码,多一行配置,就意味着多一行的维护量。简化配置的主要途径大致有:
1) 尽可能减少配置文件的数量
2) 使用语义鲜明的Annotation来代替复杂的XML文件配置
3) 使用CoC来代替配置文件
4) 使用一些特殊的技巧来简化配置文件的内容
2. 分离关注点,让配置文件各尽其用
这一点似乎与第一点有所背离,不过事实上,分离关注点对于配置文件的可维护性是非常重要的一点。
举一个针对Spring+Hibernate的配置场景作为例子。通常我们需要一个Spring的配置文件(applicationContext.xml),来配置DataSource和SessionFactory,由于Spring本身提供了针对Hibernate的Global属性进行配置的选项,所以,其实我们可以通过如下的配置文件,对Spring+Hibernate完成配置:
<bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
<property name=”mappingResources”>
        <list>
           <value>com/demo2do/demo/entity/User.hbm.xml</value>
           <value>com/demo2do/demo/entity/Order.hbm.xml</value>
           <value>com/demo2do/demo/entity/Admin.hbm.xml</value>
        </list>
    </property>
    <property name=”hibernateProperties”>
        <props>
           <prop key=”hibernate.dialect”>org.hibernate.dialect.MySQLDialect</prop>
           <prop key=”hibernate.show_sql”>true</prop>
        </props>
     </property>
</bean> 
在这里,我们发现,一个SessionFactory的配置实在太长了,一旦我们需要对其中的某些配置进行改动,就需要用肉眼去观察我们所需要修改的配置片段。在项目开发过程中,我们会发现,这个文件的这个配置片段修改频度会非常高,因为在一个团队中,每个人都可能需要增加一个持久化类,或者对hibernate进行一些全局化的配置修改。结果,这段配置可能会在版本管理上造成merge的混乱。
所以,我们可以在这个基础上对这段配置进行重构,重构的原则就在于把Hibernate的配置和Spring的配置进行关注点分离。我们选择hibernate.properties对Hibernate的一些Global的选项进行指定。同时使用指定持久化类hbm配置文件路径的方式,批量定义持久化类。重构后的配置文件变成了2个:
<bean id=”sessionFactory” class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
    <property name=”mappingDirectoryLocations”>
            <list>
    <value>classpath*:persist/system</value>
    <value>classpath*:persist/role</value>
    <value>classpath*:persist/activity</value>
    <value>classpath*:persist/extension</value>
    <value>classpath*:persist/user</value>
            </list>
        </property>
</bean>  
######################
### Query Language ###
######################
#################
### Platforms ###
#################
## MySQL
hibernate.dialect org.hibernate.dialect.MySQLInnoDBDialect
hibernate.connection.url jdbc:mysql://127.0.0.1:3306/test
hibernate.connection.username root
hibernate.connection.password root
## Oracle
#hibernate.dialect org.hibernate.dialect.OracleDialect
….
此时,我们可以发现,程序员可以独立工作,不需要为增加持久化类修改公共配置而烦恼,hibernate.properties也更加清晰的反映hibernate相关的配置。

[Tips]Vista SP1安装后删除备份文件,释放磁盘空间

    Windows Vista SP1 安装之后会增加系统的硬盘使用量。会使系统盘的容量大大的减少,所以我们有必要将其删除,具体方法如下:    我们可以利用Vista自带的vsp1cln.exe文件移除工具将Vista SP1的备份文件删除,开始→运行→输入vsp1cln.exe,回车后即可进行清理操作。不过,需要注意的是清理后将无法卸载Vista SP1程序。

CSS Framework,让你事半功倍

近两年来,程序员有一句话很流行,“不要重复制造轮子”,所以出现了许许多多让我们非常受用的各种框架。Framework在开发的各个领域给我们减少了很多工作量。而对于网页设计师来说,一直以来,缺少这样的Framework来帮助设计师们减轻工作量。
 今天给大家推荐一些不错的CSS Framework:
首先是本文的主角:

这是一个非常轻量级而且很少侵入性的框架(这话怎么看都不是网页设计师能熟悉的,:-) ),换句话来说,这是一个很底层的CSS Framework,并没有替你实现任何布局,也没有提供很多好看的模板。它只是帮你把一些最基本的事情做掉了,剩下的交给自己来了。非常适合那些具有一定开发经验的网页设计师使用。我做了一些中文化修改,大家如果发现问题,可以联系我。
reset.css
html, body, div, span,applet,
object, iframe,h1, h2, h3, h4, h5, h6,
p, blockquote, pre,a, abbr, acronym,
address, big, cite, code,del, dfn, em,
font, img, ins, kbd, q, s, samp,small, strike,
strong, sub, sup, tt, var,dd, dl, dt,
li, ol, ul,fieldset, form, label, legend,
table, caption, tbody, tfoot, thead,
tr, th, td {
  margin: 0;padding: 0;border: 0;
  font-weight: inherit;font-style: inherit;
  font-size: […]

[搜网志]Prototip 基于Prototype的tooltip

今天带来的是一个非常强大的tooltip js类库, Prototip 该类库基于Prototype和他的头号拥趸Scriptaculous,相信大家对于这个黄金搭档还是很熟悉的。
有道是 5pp54,不废话,直接明盘上图

一共十九种效果任君采撷。

[搜网志]IE的CSS标准兼容性官方MSDN说明

IE的CSS标准兼容性官方MSDN说明
http://msdn2.microsoft.com/en-us/library/cc351024(VS.85).aspx

编程速查手册汇总

This article is the chinese translation of an article @ http://webtecker.com/2008/04/14/programing-cheat-sheets/.  All rights belong to the author.
版权声明:本文版权归原作者所有 译介仅供国内读者参考
ActionScript

ActionScript Cheat Sheet - 包含AS2.0 - AS3.0的所有内容.

Ajax/JavaScript Frameworks

Prototype Cheat Sheet - Prototype1.5的方法以及属性汇总 (目前Prototype最新版本为1.6).
Scriptaculous Cheat Sheet - 非常个性化的速查笔记,有点大学里看室友笔记的感觉.
MooTools Cheat Sheet - 可能不是最新的.
jQuery Cheat Sheet - jQuery Library version 1.2.x.
YUI Cheat Sheet - 如果希望下载zip包,请点击 here.

ASP

ASP/VBScript Cheat Sheet - 更全面的信息可以去看Windows自己的script5.6.

CSS

CSS Cheat Sheet […]