原文链接:http://www.java3z.com/cwbwebhome/article/article8/81135.html
?
在JavaEE
企业级开发中,以SSH2
框
架为核心的应用非常广,大象根据项目实践经验,通过一个实例,详细的为大家讲解如何实现全注解式的开发。
????开发环境
????JDK
1.6.0
_18
????Eclipse
3.2.1
????MyEclipse
5.1.0
????Tomcat
6.0.10
????MySQL
5.0.27
????Navicat
Lite for MySQL
8.1.20
????每个人的开发环境可能会有差异,但有一点我需要说明的是,JDK
的版本不得低于1.5
,因为用到了很多1.5
版
才支持的新特性。Tomcat
和MySQL
请不要低于我所用的版本,因为我没在其它的版本上进行测试。
?
?
Navicat
则是MySQL
数据库的图形化操作工具。我
在这里假定各位目前已经设置好了开发环境,下面就开始详细的说明。
????由于要阐述的内容比较多,大象决定将它们划分成个几章节来讲,这一章就主要来说说jar
包
的选择。
????第一部分
:
选择必须的
jar
包
????新建一个web
项目,然后将必要的jar
包COPY
到lib
里
面。根据本文实例demo
,大象给出下图中的最少jar
包配置。
????
????
????我对这些jar
包
进行一下说明,方便大家理解。
????
????解压Struts
2.1.6
的lib
文件夹,从中选出上面7
个jar
包
添加到我们的工程库中。commons-logging
、freemarker
、ognl
、struts2-core
、xwork
这5
个
还是struts2
的
核心包。但在Struts2.1.6
这个版本中,还需要加上commons-fileupload
包。如果没
有,则启动就会报错,不过不需要像网上传言的那样还得加上commons-io
的jar
包,这些大象都亲自做过测试。在
本实例中,我将对struts2
也采取注解的方式,所以用到了struts2-convention-plugin-2.1.6.jar
这
个插件。因为要与spring
整合,所以struts2-spring-plugin-2.1.6.jar
也必不可
少。
????
????大象在这里偷个懒,直接将spring
的完整jar
包
加了进来,如果各位想精简类库的话,就选取它的分类jar
包吧。比如本例使用struts2
作为MVC
框
架,所以spring
的webmvc
就不可能用到了。有想改的朋友请自己动手改下。另外有点我想说
下,如果采取完整spring
的jar
包,还需要Spring
2.5.6
\lib\
concurrent
文件夹中的backport-util-concurrent.jar
,
如果不加这个,spring
会报错。但是采取spring
分类jar
包
的形式,这个可以不用加,至于具体使用什么需要依赖这个包,大象还没去测试过,这个有待验证。还有lib\
slf4j
下的日志包,目前很多都开始采用基于
slf4j
接口的日志器,它的好处就是日志器是根据
slf4j
的接口来进行实现,可以在不改变代码的情况下更换日志器。最后
Spring
的源代码中使用的是
commons-logging
记
录日志,因此这个包不能少,不过因为struts2
也用到了,所以这里就省了。
????
????Hibernate
从3.3
版开始,对jar
包
结构做了一次大的调整,我们只需要加入lib\required
文件夹下面的6
个jar
包。
请注意这6
个jar
包都是使用Hibernate所
必须的。另外再加上hibernate
核
心包。这里我将slf4j-api-
1.5.2
.jar
换成了
1.5.0
,
这是因为
slf4j
是
一个通用日志
接口,不提供任何实现,我在demo
里面使用的是log4j
,而hibernate
包
里面没有log4j
的slf4j
实现。而且如果版本不一致,会有异常,因此我就采用
Spring2.5.6\lib\slf4j
里面提供的配套版本。另外我将
commons-collections-3.1.jar
换成了
Struts2.1.6
里面的
3.2
版。
????
????例子中使用Hibernate
JPA
来完成实体对象映射,所以上面这些包都必不可少。使用注解的方式,可以不用写繁琐的配置文件,降低了出错机率。而且现在很多人都喜欢
这种方式。大家可以去sourceforge
下载。
????下载地址:
http://sourceforge.net/projects/hibernate/files/
????
????本例使用DBCP
连接池来管理数据源。
????
????MySQL
数据库的连接驱动。
????
????这个包的作用是创建动态代理对象。比如在使用AOP
方式管理spring
事务时,如果我们的目标对象没有实现
接口,而又要使用AOP
来处理事务,这时就需要用到这个jar
包。可以在Spring
2.5.6
\lib\cglib
里面找到。
????
????JSTL
标签库,很经典的东东,如果需要可以将它们加入lib
中。
???
原文地址:http://www.java3z.com/cwbwebhome/article/article8/81135.html