今天看了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月16日星期四
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就可以了。
搭建环境的时候可以参考springside3的wiki和这篇文章
今天开始关注SpringSide
订阅:
博文 (Atom)