`
kang
  • 浏览: 464925 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Seasar和S2Dao简介

    博客分类:
  • NBS
阅读更多
发表时间:2007-04-21 关键字: Seasar DI IoC AOP framework

<script type="text/javascript"><!-- --></script>
近段时间,给公司一项目组培训Seasar Framework (http://www.seasar .org/en/index.html ),一个非常类似于Spring Framework的框架,它起源于日本,并且在日本非常流行。现在我对这段时间的学习做一个总结。学习和培训过程中,我们以一个mini Blog项目练习,功能需求类似于Javaeye的blog。

Seasar framework最初公布于众是03年8月,那时是作为一个应用服务器,依托于Web 容器Jetty和数据库HSQLDB。后来,于04年3月,经过改造,成为一个轻量级DI(Dependency Injection)和AOP容器,并重新命名为Seasar2。经过一段时间的发展,从05年4月,该项目移到sourceforge.jp,并且真正 意义上的开源,用的是apache liscense2.0。
就像其它DI容器一样,Seasar 中的组件也是通过xml配置文件定义,但是,它引入了“Convention over Configuration”,有点类似于Ruby On Rails的CoC,和Spring的配置文件比起来,确实小的很多。

Seasar 框架主要由三部分组成:
Seasar 内核和扩展:框架的DI和AOP实现,以及一些相关服务,如连接池、事务、JDBC框架
相关软件:如S2Hibernate,S2Dao,S2Struts,S2JSF
Sandbox软件:就是相关软件的开发中版本。这类软件非常多,如对JMS、Remote的支持框架。

Seasar 框架,除了以Java版本为主外,还有.Net和php5版本。当然,这两种语言的扩展框架不如Java版丰富。

我自己对Seasar 框架整体的看法:
1、 从框架的使用来说,和使用Spring没有太大区别。Spring提供的IoC和AOP,它几乎都提供,而且第三方扩展也都差不多。

2、 Seasar 的配置文件,比Spring的少很多,这也是官方宣传的亮点。因为它可以根据规则,将组件和组件的关联一次性配置。这些规则,就是接口和接口的实现类的命名、分包方式。

3、 Seasar 的官方英文文档很少,而且几乎只有官方网站支持,没有论坛。我主要是看源码,再结合文档看。而且源码没有任何注释。但是,它的代码量比较小,两个核心包加起来只有2w行代码(不包括注释和空行)。

4、 Seasar 也是一个一站式框架。它除了提供核心DI和AOP服务外,还有持久层和表示层框架,比较有特色的是Mayaa模板,类似于Tapestry那种方式,一个html,一个.mayaa文件。

下面,我大致介绍一下在用Seasar 开发过程中用到的一些流行框架组合:Seasar +S2Dao+S2Struts+Mayaa。

S2Dao:
这是Seasar 自己的持久化解决方案。非常精致,只有6000多行代码。不过功能比起Hibernate弱很多。但是,对于不是非常强调OO建模的应用来说,我认为是足够了。它不是ORM,只是实现了DAO模式,并且开发人员不必和JDBC打交道。
而且,我觉得它最大的亮点,就是不用写持久层代码,用户只需写接口,以及某些接口方法对应的sql。它会通过AOP自动生成实现类,而且也是声明式事务。

它的开发过程大概是:
1、 根据数据库table,写Entity类。注意,不是命名为Model,因为它只是数据库表的实体映射,就如同E-R图的E部分,在Entity类中,通过字段表示如下信息:对应的数据库table、字段对应信息、多对1关联关系等等。注意,它只能实现多对1关联。
2、 写出DAO的接口,譬如基本的CRUDL操作,要是有复杂的CRUDL,可以通过方法名、以及对应的sql搞定。但只能用一条sql。所以,譬如当我们要实现复杂的insert操作,必须在Service层组合几个dao的接口方法,然后加上声明式事务。
3、 对于多数据库支持,是通过在sql语句的文件名后面加上数据库后缀,如UserDAO_findByUsername_mysql.sql。我觉得非常不 爽的地方时,它必须每个方法一个sql文件,要是我一个dao接口有30个方法,我不是要写30个sql文件?当然,sql语句可以注释在DAO接口上 面。
大概以上三步概括了S2Dao框架的基本使用,它没有什么特殊用法,因为我看源代码上也很简单。因为它省去了在ORM框架中最难的部分:关联映射、继承关系、cache等。不过,这样也让S2dao的持久层开发异常简单。

对S2Dao的整体感觉,它和EJB中的实体Bean,特别是CMP非常类似,又有些BMP的特性。但是,它的配置文件除了sql,几乎没有。
当然,持久层还有和Hibernate集成的S2Hibernate,但比起Spring差远了。

 

 

说明:本文更多内容请参考:<!-- --><!-- --><!-- -->http://www.iteye.com/topic/72952

 

Seasar官方网站地址: http://www.seasar.org/index.html

 

其中,s2dao的地址链接<!-- --><!-- --> <!-- -->http://s2dao.seasar.org/ja/

 

 

-》并不是每个调查任务都能最终应用到实际项目中去,NBS项目中,Seasar和S2Dao就没有使用得上。

这个也很正常,因为此次项目,是需要我们中方自己选择技术解决方案,我们不做调查和比较,怎么知道如何选择呢?!(20090519追加)

 

分享到:
评论
1 楼 shangweiqiang24 2011-03-02  
正要用到,捡到宝啦! 谢谢啊。

相关推荐

    seasar框架S2Dao使用指南

    seasar2框架中S2Dao使用指南,轻松掌握S2Dao 访问Oracle数据库的用法,与技巧

    seasar s2dao

    seasar s2dao

    S2DAO源码

    S2DAO源码, 一个数据库操作工具包

    一个日系seasar框架Demo:S2Containor+S2Dao+SAStruts+mayaa

    当前日本流行的开发框架,官方网站:http://www.seasar.org/我上传的这个是已经把各个框架集成好的,可以直接在上面进行开发。如有需要的话还可以加上DBFlute

    seasar2中文文档

    S2Container定义的分解和引入 名称空间 实例管理 生存周期 自动绑定 组件中利用S2Container S2ContainerServlet app.dicon的角色 AOP的适用范围 META数据 Request的自动绑定 组件的自动登陆 Aspect的...

    s2-dao-1.0.50.zip

    s2-dao-1.0.50.zip seasar框架的讲解s2-dao

    日本S2DAO技术框架

    NULL 博文链接:https://ss0839.iteye.com/blog/1560968

    seasar2 samples

    学习s2dao.net的好例子! 以C#为例的。

    seasar

    ,我觉得Seasar是一个轻量级的数据处理工具,因为无论是最终用户或是程序编制者,在使用过程中都可以找到一个相当便捷的方法来实现。

    s2-dao-1.0.49.zip

    无须用XML定义映射及实装代码的O/R Mapping 软件框架

    seasar2.PPT

    关于seasar2的PPT文件,经典!欢迎下载!

    seasar 的一个action处理

    日本框架seasar 的一个action处理

    Seasar2的英文介绍

    seasar2的英文介绍,主要介绍seasar框架。pdf格式。

    seasar2构建工程

    seasar2,构建工程的pdf,讲解如何建工程。入门级资料。

    Seasar2其实就是类似于Spring的一个开源框架

    所谓“Seasar2”就是一个“轻量级容器”,面向无法摆脱“Java 应用开发”之烦恼的所谓“开发者”,它能够保证开发的“高生产率和高品质”。并且同“其它轻量级容器”不同的是,“完全不需要书写设定文件”,“就算是...

    小日本的开源框架 Seasar2

    所 谓“Seasar2”就是一个“轻量级容器”,面向无法摆脱“Java 应用开发”之烦恼的所谓“开发者”,它能够保证开发的“高生产率和高品质”。并且同“其它轻量级容器”不同的是,“完全不需要书写设定文件”,“就算...

    seasar2.3

    seasar2.3之S2Backport175-2.3.22.zip

    基本Seasar2 Web工程项目源码

    Seasar2这个框架在日本十分的流行。Seasar2其实就是类似于spring的一个提供DI功能的开源框架,但比Sping轻量级。 并且同“其它轻量级容器”不同的是,“完全不需要书写设定文件”,“就算是应用程序发生改动也无需...

    seasar for .net

    seasar在.net的使用的详细说明。。。。。。。。。

    seasar框架开发常用数据关系组件

    日本开源javaweb框架seasar,采用sql以独立文件存在的形式,使得sql易于编写和管理。

Global site tag (gtag.js) - Google Analytics