<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog336280.html" frameborder="0" width="336" scrolling="no" height="280"></iframe>
这是[挑战MVC极限]EasyJWeb-1.0特性的第四篇文章,今天主要介绍零配置及惯例代替配置。
配置是好还是坏
首先,我承认配置是好东西,它能够通过修改程序以外的数据来改变系统的运行性质或功能,大大提高了系统的灵活性,可维护性,从而延长了一个系统的存活期。
跟其它任何事情一样,物极必反。当一个好的东西泛滥成灾的时候,我们也会产生厌恶,走向另外一个极端。而纵观今天我们正统的JavaEE应用,配置可谓无处不在,由于过分的强调了灵活性、可扩展性、可选择性,大到Spring小到log4j的各种框架、辅助工具都会提供配置文件来改变他们的运行属性。一个JavaEE应用往往需要到很多的框架及辅助工具,比如Spring的bean配置文件、dwr配置文件,hibernate的对象-关系映射文件、struts的配置文件、验证文件等。好大一堆啊,我们看看appfuse中的配置文件,而维护这些配置文件,并非一个简单的事儿。
如何简化配置
为了解决过度“配置”给我们带来的配置恐惧病,唯一的办法是简化配置。
我们如何简化配置,使配置尽量的少,尽量的简单,甚至把配置减到零呢?在整个java社区,有很多人在做着这样事儿。减化的流程大致如下:
第一步:使用注解,把不是频繁变动的配置信息从外部配置文件迁移到与这些配置紧密联系的java文件中,可以减少2/3以上的配置信息。
第二步:一些具有很多习惯性的配置属性,可以通过惯例约定的方式,来代替配置,从而又可以减掉一部分配置。
第三步:最后余下的即是跟程序运行环境紧密相关,易变的配置文件。比如针对数据库连接信息dataSource的配置。
这样就可以在不影响系统的灵活性、可扩展性、移植性的情况下,最大限度地减化了配置。
零配置
EasyJWeb在开发的过程中,在配置处理上,一直把减化配置作为一个重点注意事项,并实现了零配置。有了零配置支持,你可以不写一句配置文件,就能实现立体感超强的JavaEE应用。dao、service、module、action等,都会按照惯例约定的方式来工作。
比如,我们需要写一个用户登录的Action,可以在com.easyjweb.action这个包下面,添加一个名为LoginAction的类,可以继承AbstractPageAction或者直接实现IWebAction接口。 使用AbstractPageAction能自动识别模板,实现起来最简单,代码内容如下:
这是[挑战MVC极限]EasyJWeb-1.0特性的第四篇文章,今天主要介绍零配置及惯例代替配置。
配置是好还是坏
首先,我承认配置是好东西,它能够通过修改程序以外的数据来改变系统的运行性质或功能,大大提高了系统的灵活性,可维护性,从而延长了一个系统的存活期。
跟其它任何事情一样,物极必反。当一个好的东西泛滥成灾的时候,我们也会产生厌恶,走向另外一个极端。而纵观今天我们正统的JavaEE应用,配置可谓无处不在,由于过分的强调了灵活性、可扩展性、可选择性,大到Spring小到log4j的各种框架、辅助工具都会提供配置文件来改变他们的运行属性。一个JavaEE应用往往需要到很多的框架及辅助工具,比如Spring的bean配置文件、dwr配置文件,hibernate的对象-关系映射文件、struts的配置文件、验证文件等。好大一堆啊,我们看看appfuse中的配置文件,而维护这些配置文件,并非一个简单的事儿。
如何简化配置
为了解决过度“配置”给我们带来的配置恐惧病,唯一的办法是简化配置。
我们如何简化配置,使配置尽量的少,尽量的简单,甚至把配置减到零呢?在整个java社区,有很多人在做着这样事儿。减化的流程大致如下:
第一步:使用注解,把不是频繁变动的配置信息从外部配置文件迁移到与这些配置紧密联系的java文件中,可以减少2/3以上的配置信息。
第二步:一些具有很多习惯性的配置属性,可以通过惯例约定的方式,来代替配置,从而又可以减掉一部分配置。
第三步:最后余下的即是跟程序运行环境紧密相关,易变的配置文件。比如针对数据库连接信息dataSource的配置。
这样就可以在不影响系统的灵活性、可扩展性、移植性的情况下,最大限度地减化了配置。
零配置
EasyJWeb在开发的过程中,在配置处理上,一直把减化配置作为一个重点注意事项,并实现了零配置。有了零配置支持,你可以不写一句配置文件,就能实现立体感超强的JavaEE应用。dao、service、module、action等,都会按照惯例约定的方式来工作。
比如,我们需要写一个用户登录的Action,可以在com.easyjweb.action这个包下面,添加一个名为LoginAction的类,可以继承AbstractPageAction或者直接实现IWebAction接口。 使用AbstractPageAction能自动识别模板,实现起来最简单,代码内容如下:
分享到:
相关推荐
ThinkPHP的系统内置有一个惯例...* 该文件请不要修改,如果要覆盖惯例配置的值,可在项目配置文件中设定和惯例不符的配置项 * 配置名称大小写任意,系统会统一转换成小写 * 所有配置参数都可以在生效前动态改变 +-----
四制定价格条款及相关国际惯例解读.pptx
惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置 以上是配置文件的加载顺序,因为后面的配置会覆盖之前的同名配置(在没有生效的前提下),所以配置的优先顺序从右到左。 不同的...
数学建模-公平席位分配问题(比例+惯例法)
随着全世界的经济逐步知识经济迈进,创造和运用知识开展创新活动成了全社会人们创造财富和福利的主要手段。由于任何企业或个人的创新活动都具有一次性、独特性和不确定性等现代项目的特性,因此人们的各种创新活动都...
软件开发软件编码规范、惯例和约定对于软件开发人员而言尤为重要
程序实现了 用惯例Q值和dhondt 方法分配席位问题,可适用于所有情况
外贸人必看的有关日期的国际惯例
贸易术语及有关的国际惯例.pptx
在2002年4月的ICC银行委员会会议上,各国代表对何时、如何修订UCP500未达成一致意见(我国赞成立即开始修订),但一致同意先对产生最多争议的七个条款进行评议。因为ICC提出的专家意见中超过58%集中在UCP500这七个...
《跟单信用证统一惯例中文版》(UCP600).pdf
命名惯例和规范(C#)引用
“惯例”这个词指的是“习惯的做法,常规的办法,一贯的做法”,与这个词对应的英文单词叫“idiom”。由于Python跟其他很多编程语言在语法和使用上还是有比较显著的差别,因此作为一个Python开发者如果不能掌握这些...
打招呼 很多兄弟不知道怎么和女生聊天总是纠结与第一话怎么说,怎么显现出自己的与众不同。这进入了一个误区。所以一开始就要强调:不在于你说了什么,而在于“你是谁”。 推荐新手的打招呼方法 新手们如果想不到好...
[精选]会计惯例和财务报表的国际比较.pptx
Python编程惯例.md
这篇文章详细的描述了gnu编码标准。这篇文章详细的描述了gnu编码标准。这篇文章详细的描述了gnu编码标准。这篇文章详细的描述了gnu编码标准。这篇文章详细的描述了gnu编码标准。这篇文章详细的描述了gnu编码标准。
struts2演示 <br>1./helloworld - helloworld 2./spring - 与spring整合 3./coc - 惯例优先配置,零配置文件 - codebehind不支持redirect,chain等操作,需要自己写jsp跳转 4./crud - CRUD,Create Read...
[精选]会计惯例及财务报表管理知识分析.pptx