使用SpringSide的先决条件,要安装JDK1.5或以上的版本,要设置JAVA_HOME环境变量,要安装EclipseIDE,我使用的是3.2版。
第一步,先下载SpringSide2.0-RC1-allinone,下载地址如下图。下载后解压缩,我解压后存放SpringSide的目录为D:/SpringSide2.0/,然后,运行该目录中的springside.bat批处理文件,构建SpringSide项目,并可以看到SpringSide提供的两个示例应用。
第二步,将D:/SpringSide2.0/tools/springside-ide/target/eclipse/plugins目录中的org.springside.ide_1.0.0拷贝到Eclipse的plugins目录中。
第三步,打开EclipseIDE,点菜单“窗口”-〉“首选项”,在弹出的窗口中设置SpringSide2Home,如下图:
然后,就可以在创建项目的时候选择SpringSide项目了,如下图:
按照向导继续,会有一个选择组件的步骤,选择需要的组件即可。在这里,我只选择了Hibernate、Struts等几个我用得到的组件。其他的组件以后需要的时候再添加吧。
看一下目录结构,发现SpringSide2.0-RC1版本的目录结构比M1版要清晰得多,bin目录里面存放的都是ant脚本文件和bat批处理文件,构建项目的时候,可以根据需要选择运行其中不同的脚本。其中的ant构建脚本在Eclipse中可以直接运行,而bat批处理文件,可以将它们定义为Eclipse的外部工具而运行。有时候,为了加快工作速度,我也写一些批处理文件,也放到这个目录中,也定义为Eclipse的外部工具运行。src目录存放Java源代码,test目录存放测试代码,webapp目录存放Web项目中用到的其它资源。
再来说一下这里提供的quickstart.bat批处理,这个批处理的作用是快速的编译、部署和启动项目,在这个过程中,它同时包含了启动Tomcat服务器和启动浏览器的动作。我在开发中经常要观察一些小修改的运行效果,如果每次都运行quickstart.bat会非常浪费时间。quickstart.bat的另外一个致命缺点就是它里面没有包含停止Tomcat服务器的动作,所以如果多次运行该批处理就会出错。因此,我需要定义两个Eclipse的外部工具,它们分别是Tomcat服务器自己的启动和停止脚本。如下图:
进行了这些改进后,还有一点小问题需要解决,那就是Tomcat服务器在启动的时候有不少的错误信息,虽然不影响使用,但是看起来不爽。经过我的分析,发现是在创建Hibernate的SessionFactory的时候出错,也就是说是数据库没有配置好。因此,在项目中修改这样两个文件:
1、src/resources/config/jdbc.properties改的是使用的数据库驱动、连接属性和用户名及密码;
src/resources/spring/dataAccessContext-hibernate.xml改的是hibernate.dialect属性。
同时,SpringSide2.0的另外一个缺陷就是没有包含MySQL的JDBC驱动,因此,我不得不到MySQL的官方网站上去下载mysql-connector-java-5.0.8.jar,将下载到的文件放到我的项目的webapp/WEB-INF/lib目录下。至于怎么安装MySQL数据库,我就不废话了。
最后,总结一下,使用SpringSide2.0开始一个项目是很简单的,要解决的问题主要有以下两点:
1、quickstart.bat脚本不够快,也不能够重复启动,需要单独暴露tomcat.start和tomcat.stop以及tomcat.deploy任务,希望SpringSide团队在3.0版中修正这个问题;
2、没有MySQL数据库的JDBC驱动,需要单独下载安装;
3、需要修改数据库的连接属性,使用自己顺手的的数据库。
做完这些修改之后,运行quickstart.bat,就可以看到熟悉的HelloWorld应用了。 <script type="text/javascript"><!-- google_ad_client = "pub-2356171061458507"; /* 728x90, 创建于 08-4-5 */ google_ad_slot = "9120490785"; google_ad_width = 728; google_ad_height = 90; //--> </script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"> </script><script>window.google_render_ad();</script>