日本框架seasar

yukang_ky 2008-12-08 10:36:58
在项目开发中要用的seasar,自己想学习一下,但是网上资料很少,有了解的大虾,请指点一下,seasar要用到哪些jar包?
...全文
681 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyys8517750 2011-10-19
  • 打赏
  • 举报
回复
5楼copy的百度大神的
yukang_ky 2008-12-26
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 leonguo_1986 的回复:]
一年做过Serare2的项目。
可以说说算是个超轻量级的SSH类似框架,如果有SSH的经验的话做起来应该容易的。
(鄙人当时刚从学校毕业,就做这个感到头痛啊,不过现在想起来还是不错的东东)
[/Quote]

请教。
herakles86 2008-12-25
  • 打赏
  • 举报
回复
学习了~
leonguo_1986 2008-12-25
  • 打赏
  • 举报
回复
一年做过Serare2的项目。
可以说说算是个超轻量级的SSH类似框架,如果有SSH的经验的话做起来应该容易的。
(鄙人当时刚从学校毕业,就做这个感到头痛啊,不过现在想起来还是不错的东东)
yukang_ky 2008-12-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xuyang840117 的回复:]
呵呵 我们也在用 seasar2(S2Struts)
我也在学习~~
1年多了 没用java了
建项目时候 那些层次结构都会自动生成还是手动写的哦
[/Quote]

你有用过struts+hibernate+seasar2三个框架整合吗?
xuyang840117 2008-12-25
  • 打赏
  • 举报
回复
呵呵 我们也在用 seasar2(S2Struts)
我也在学习~~
1年多了 没用java了
建项目时候 那些层次结构都会自动生成还是手动写的哦
lord_is_layuping 2008-12-24
  • 打赏
  • 举报
回复
我听一头猪讲起过。
yukang_ky 2008-12-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wzr1982 的回复:]
SEASAR,一种流行的JSP软件开发框架,目前流行Seasar2其实就是一个非常类似于Spring Framework的开源框架。
  Seasar framework开发模式起源于日本,并且在日本非常流行。
  Seasar framework最初公布于众是03年8月,那时是作为一个应用服务器,依托于Web 容器Jetty和数据库HSQLDB。后来,于04年3月,经过改造,成为一个轻量级DI(Dependency Injection)和AOP容器,并重新命名为Seasar2。经过一段时间的发展,从05年4月…
[/Quote]

你从网上copy过来的吧
wzr1982 2008-12-24
  • 打赏
  • 举报
回复
SEASAR,一种流行的JSP软件开发框架,目前流行Seasar2其实就是一个非常类似于Spring Framework的开源框架。
  Seasar framework开发模式起源于日本,并且在日本非常流行。
  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差远了。
  S2Struts:
  它是Seasar用DI和AOP技术对Struts进行封装。它支持Struts的Action风格和配置,同时,也支持纯POJO的Action。后者的Action是官方的推荐,它不用像Webwork那样实现特定的Action接口,它就是普通的JavaBean,但是它一般需要实现一个自己的接口,这点有些不爽,但对于Action配置很方便。另外,它的ActionForm也完全是普通的JavaBean。
  整体上,S2Struts的使用和Webwork惊人的相似,类风格也非常一致,譬如方法的返回值是一个字符串。
  S2Struts通过 prototype的实例生成方式,解决了Struts本身的线程安全问题,因为Struts是共享一个Action实例。所以,在S2Struts的Action里面,我们可以声明实例变量。
  S2Struts的实现原理大致是:通过AOP将普通JavaBean的ActionForm动态注入自己的S2BeanValidatorBean,该Bean继承于Struts的ActionForm。普通POJO的Action类也类似这样:动态将ActionForm和ActionMapping等注入。而且,通过filter,将HttpServletRequest,HttpServletResponse等实例注入Seasar 容器的ThreadLocal变量里,而Action可以通过访问容器来获取这些组件,同时,这些对象也自动通过Setter方式注入Action,这样Action就可以和Web容器打交道了,譬如直接调用reponse.sendRedirect导航,因为在url里面动态注入参数这类需求不容易实现,但Webwork可以在配置文件里面通过类似viewUser.do?id=$方式注入id值。
  表示层模板语言Mayaa:
  我认为这是它的一个亮点,当然Mayaa不属于Seasea,它是一个单独的项目,譬如官方已经将Mayaa和Webwork2集成了,但是它挂在seasar下:http://mayaa.seasar.org/。我接触过几种模板语言,如Velocity、Freemaker,Tapestry的html,但是,我认为,Mayaa是设计上最优雅的:它可以完全将html页面单独拿出来设计。通过每个html文件并列的mayaa文件写展现逻辑,动态注入html页面。
  Velocity和Freemake对于美工和可视化编辑并不友好,Tapestry这种事件驱动框架生成的url也不友好。
  不过,也有一些限制,它现在只有日文文档,模板出错调试几乎不太现实:大量反射。Mayaa的文档还是挺丰富的,我是用google的网站翻译工具,再结合官方examples学习的。
  Mayaa现在支持三种标签库:Struts、JSTL、mayaa标签,所以mayaa的使用主要在标签上。
  另外,Mayaa有自己的布局管理器,功能类似于Tiles和Sitemesh。
  Mayaa的实现原理,大致是根据html的tag ID,用mayaa模板对应的ID动态替换。
  Mayaa的demo,很多用直接的html请求,如listArticls.html?userId=12方式请求,mayaa模板文件里调用action方法
  Java代码
  <s2struts:init action="#{ownerAction.doInitRegisterOwner}" />
  <s2struts:init action="#{ownerAction.doInitRegisterOwner}" />
  ,虽然方便,但这样就退化到了Model 1请求方式,从Model 2的Push退化到了Pull,一会儿 .do请求,一会儿 .html请求,让人对Request.setAttribute很迷惑。
  目前国内常使用SEASAR2模式进行项目开发的企业有:
  上海桑友信息科技有限公司、上海小樱信息科技有限公司等日资企业。
dannel0101 2008-12-12
  • 打赏
  • 举报
回复
这个框架还是不错的
汲取了Ruby On Rails的COC思想
追求0配置
有几块和Spring比较像
dannel0101 2008-12-12
  • 打赏
  • 举报
回复
http://www.seasar.org/
官网就够了
VistaKobe 2008-12-08
  • 打赏
  • 举报
回复
没有听说过。?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧