显示标签为“SpringSide”的博文。显示所有博文
显示标签为“SpringSide”的博文。显示所有博文

2009年4月16日星期四

SpringSide3 个人理解之DAO&Service篇

今天看了SpringSide3的例子,并且仔细看了源码。发现其实SpringSide3与我想的差异比较大,SpringSide3其实并不是一个code genaretor,而是一种架构风格,他是倡导的一种构建应用的风格。在充分利用已有框架和Java特性的基础之上快速建立应用的风格。废话不多说,列举一些例子,这些都是从demo中得到的感触。
拒绝无谓的过多的不必要的繁琐的没有意义的Interface。不否认有些时候需要接口,特别是提供API的时候,可是在JAVA语言中,接口更多的是概念级的东西。它固然有非常多的有点,可是在项目中无谓的无条件的遵循接口->实现的设计准则,有点本末倒置的感觉。其实很多时候用父类->子类的模式可能更加方便一点。补充一点:关于接口和继承的关系:“接口是调用方要求的结果,而继承则是实现方思考的产物。”
Sping中有HibernateTemplate。但是这个东西也是比较被人诟病的,主要是它用起来是很简单但是功能太简单,并不能完全取代DAO层。封装SpringSide扩展功能的Hibernat范型基类HibernateDao也比较简单,可是由于是基于原生HibernateAPI,所以利于扩展,实际上一般我们在项目中也是这么做的。而DefaultEntityManager类给人的感觉很像RoR中model的基类,基本实现了entity的管理同时子类又可以自由扩展。总的来说,在这块其实倒也都是常用的方式和技巧,只不过SS3提供了更加规范的实现方式。利于后来人的维护。总的来时封装DAO与Service层基本可以统一了。由于使用了JAVA的注释特性,真的达到了几乎0配置。否则Hibernate和Spring的配置文件,即便使用XDoclet,也需要很费劲的写很多配置及部署文件。

2009年4月15日星期三

SpringSide3第一步

因为SS3是建立再maven之上的,为了减少以后的麻烦,先建一个nexus私服。
  • 搭建nexus,下载nexus,我是直接再springside3 all in one 中的\tools\maven文件夹找到的,之后依次运行\tools\maven\nexus-1.2.1\nexus-webapp-1.2.1\bin\jsw\windows-x86-32目录下的InstallNexus.bat和StartNexus.bat。
  • 之后启动Tomcat。
  • 之后运行bin\quickstart.bat。
  • 之后去看会儿电视什么的。
  • 之后看看C盘C:\Documents and Settings\{UserName}\.m2目录下的repository就建好了。这时候的sample是运行再Derby上的,如果要运行再Mysql上,首先要改applicationContext.xml和application.properties.但是SS3的driverClassName为什么不也写到properties中呢?我也纳闷呢!。之后再去修改项目中的pom.xml。
  • demo中的schema sql是针对Derby的,所以为了方便操作,建立一个针对Mysql的脚本。再修改pom.xml.
    之后运行进入bin目录运行init_db.bat.再之后运行examples\mini-web\bin\copy-jar.bat再把它引入eclipse就可以了。

搭建环境的时候可以参考springside3wiki这篇文章

今天开始关注SpringSide

昨天晚上开始研究SS3,发现要想玩转SS3,首先要先会用maven(烦),下一步是将sample装进IDE,再看看sample中的code,研究一下为什么那么多人都说它好。之后利用SS3\bin中的tools生成一个项目,自己玩玩。
最终的想法是利用JRuby开发Java项目。Ruby的语法优势+Java的社区优势=无敌。
晚上推出第一部分内容。