菠萝大象
用心思考,用心写作
首页
新随笔
联系
管理
随笔-67 评论-522 文章-0 trackbacks-0
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)
在
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
中。
大象在这里建议大家做开发的时候,不要过多的依赖
MyEclipse
提供的那些功能,多用手动的方式来做。那样方便是方便了,但不利于学习。比如加入上面这些开发所用的类库,这样可以更清楚的了解每个
jar
包的作用,增加知识的积累,方便以后调试。
Ok
,关于这部分的内容到这里就说完了,那么,我们下次继续。
本文为菠萝大象原创,如要转载请注明出处。
http://www.blogjava.net/
bolo
posted on 2010-04-11 22:24
菠萝大象
阅读(22492)
评论(35)
编辑
收藏
所属分类:
Struts2
评论:
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-11 22:46 |
E2
从来就不用MyEclipse
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-11 23:22 |
菠萝大象
例子我做好了,写得比较简单,主要是方便大家理解与学习,关键问题是用文字把它表述出来需要点时间。看过我博客的朋友应该知道,大象是个很负责的人,我一直都是很用心在写博客。我从来没有从网上随便抄一些文字和代码来敷衍了事。所有的字句都倾注了我的理解与总结。所有的例子都亲自做过测试过。所以请大家耐心等下,后面的章节很快就会出来。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)[未登录] 2010-04-12 08:33 |
小人物
顶一个!!!
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-13 12:58 |
gouf
值得看下看, 特别是spring的 ^^
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)[未登录] 2010-04-15 16:18 |
追求
好文章 ,简述了一个项目的主要框架思想及代码实现 再赞一个,辛苦这么晚还在为IT业做贡献,之前一直也想写这类文章,怎耐本人太懒
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-15 19:45 |
菠萝大象
@追求
呵呵,谢谢支持
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-19 23:28 |
三国阿海
我总算注册成功了,忙了我大半个小时。我还以为是我一定要注册那个什么的邮箱。
后来才在Yahoo收到,BlogJava给我发的信息。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-20 10:30 |
keer
netbeans...
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-22 08:34 |
税国政
楼主能否给出代码下载呢?
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)[未登录] 2010-04-23 14:13 |
javaStudy
不错。对jar包的选择讲解的很好。网上其他的一些文章中都是说,把什么框架的lib下的jar全拷到工程里,说是为了,省事,不易出错。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-23 15:57 |
菠萝大象
@javaStudy
谢谢支持,你说的很对,那样做一点用处都没有,写的人不清楚,看得人更不清楚。大象就是想让大家看点有用的东西,仅此而已。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-26 10:51 |
software-Andy
楼主严谨的态度让人敬佩啊
好文章,值得借鉴
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-04-26 12:44 |
菠萝大象
@software-Andy
谢谢支持。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)[未登录] 2010-10-09 18:51 |
nassir
请问下菠萝大象,在你这个ssh2项目中sessionFactory是如何注入到HibernateDaoSupport中去了,我通过注释搭建项目,加载XML文件时,怎么老报 Caused by: java.lang.IllegalArgumentException: 'sessionFactory' or 'hibernateTemplate' is required
提示我sessionFactory没有注入
希望有时间帮忙给个解释,谢谢
我的邮箱:nassir@126.com
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2010-10-11 14:32 |
菠萝大象
@nassir
这位童鞋你好,首先谢谢你关注我的博客。我想问下,你将我的这五篇文章都仔细的看完了吗?恩,是仔细的,如果还不是很清楚的话,再多看几遍,另外把我提供的源码下下来也看看。确认自己都搞清楚没问题了,再动手做吧。我碰到有很多朋友都是还没仔细的看,就急着开始动手做了,后来他们按我的建议,都自己解决了,希望你也能自己解决,如果还有什么不清楚的,请在回复中写出来,我会看到的。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-02-17 13:17 |
sdfsdf
关注SSH中,谢谢啦
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-03-17 18:40 |
taote
今天报了一个错误,java.lang.ClassCastException: org.hibernate.annotations.common.reflection.ja。。。。。。
查了好多遍原来是hibernate的annotation的jar包冲突了。我用的是hibernate3.6,所以hibernate-annotations.jar和hibernate-commons-annotations.jar这两个jar就不要加了,hibernate3.5以后已经集成了annotation了。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-03-17 22:55 |
菠萝大象
@taote
我没用3.6的进行测试,谢谢你的提醒,大象非常感谢
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)[未登录] 2011-04-28 17:59 |
AAA
好好好 赞赞赞
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-05-03 23:59 |
huanghao
楼主,谢谢分享
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-05-14 11:29 |
文学社
看来还要加强学习。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-05-16 16:40 |
李亮
为什么源码里面的注解都是乱码
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-05-16 18:02 |
菠萝大象
@李亮
你工作空间设置的是什么编码?我用的是UTF-8编码
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-06-04 09:49 |
wings
谢谢
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-06-13 17:05 |
李晓阳
请问下菠萝大象,你在这个框架的用到的jar包能不能给我发一份,邮箱地址是xupengfei666@163.com,万分感谢啊。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2011-06-13 17:09 |
菠萝大象
@李晓阳
还在使用老方法做啊?改成maven吧,没看到传统做法我已经没写了吗?你想要我还是可以发给你的,你不觉得传统方式很麻烦么,效率也不高
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)[未登录] 2011-08-01 13:12 |
海风
多谢分享,对我很有用,学习了!
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2012-10-09 09:59 |
伍叶春
缺少包:
commons-lang-2.5.jar
否则StringUtils.isNotBlank(name)报错.
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2012-10-09 10:04 |
菠萝大象
@伍叶春
我这里所说的,是必须有的jar包,commons-lang是可选的,第五篇最下面,有本例所用到的jar包。你可以去看看
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2013-09-10 16:42 |
李登峰
大象你好,三大框架service层,dao层都有接口吗?你这这么没有,那个接口主要有什么意义
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2013-09-27 10:01 |
菠萝大象
@李登峰
其实对于业务来说,要不要接口已经没有区别了,相反搞接口还显得麻烦,接口的定义是一种抽象,对于业务来说你根本就抽象不出来,你不知道什么时候需求就变了。
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2013-10-08 14:34 |
求指导
大象,您好,谢谢您详细的说明,能把jar包发一份到我的邮箱吗?baoxilin@126.com
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一) 2013-11-23 16:14 |
asdasd
没接口 怎么用aop创建动态代理对象@菠萝大象
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)[未登录] 2014-07-21 13:09 |
lxl
讲的太好了,真心感谢你的讲解,思路清晰,受益匪浅~谢谢~
回复
更多评论
#
re: Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)
2015-01-17 10:01 |
ld
可以发一份Struts2.1.6+Spring2.5.6+Hibernate3.3.1源码我学下吗zhengshuihong1990@163.com,最近在搭建SSH项目,我在想opesseion怎么关闭,又说在filter可以关,又说,手动关,是不是不用关啊我用的是hibernate3.6的
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
由Struts2Action代理和googlecode-jsonplugin产生的一个IllegalArgumentException异常问题
SSH2项目的Maven版下载
基于SSH2框架AspectJ的登录登出日志实现
基于SSH2框架Struts2拦截器的登录验证实现
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(五)
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(四)
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(三)
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(二)
Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)
<
2010年4月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
随笔分类
(67)
Concurrency(3)
Database(4)
dom4j&jdom(3)
Eclipse(3)
Flex(4)
Hibernate(2)
Java(11)
jBPM(1)
jQuery(5)
Linux(1)
mybatis-generator(3)
Spring3(11)
Struts2(9)
随笔(7)
随笔档案
(67)
2015年9月 (1)
2015年8月 (1)
2015年7月 (1)
2015年5月 (1)
2015年4月 (1)
2015年3月 (3)
2015年2月 (1)
2015年1月 (2)
2014年8月 (1)
2014年6月 (2)
2014年5月 (2)
2014年4月 (3)
2014年3月 (1)
2014年2月 (1)
2014年1月 (2)
2013年12月 (3)
2013年11月 (2)
2013年10月 (2)
2013年9月 (2)
2012年5月 (1)
2012年4月 (2)
2011年8月 (1)
2011年6月 (1)
2011年5月 (3)
2010年9月 (1)
2010年8月 (1)
2010年7月 (1)
2010年6月 (1)
2010年5月 (2)
2010年4月 (4)
2010年3月 (2)
2010年2月 (7)
2008年9月 (2)
2008年8月 (6)
搜索
积分与排名
积分 - 778238
排名 - 54
最新随笔
1. 由Struts2Action代理和googlecode-jsonplugin产生的一个IllegalArgumentException异常问题
2. 在CentOS系统中同步时间
3. 全局唯一ID生成器浅析
4. 用Java实现MJD转UTC
5. 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(三)
6. 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(二)
7. 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(一)
8. Quartz Spring与Spring Task总结
9. 常用的MySQL复杂查询语句写法
10. 常用的MySQL语句写法
11. 浅谈Java两种并发类型——计算密集型与IO密集型
12. 使用XStream注解实现Java对象与XML互相转换的代码示例
13. 浅谈volatile变量的理解
14. 浅谈Java共享变量
15. m2eclipse安装小贴士
最新评论
1. re: 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(一)
评论内容较长,点击标题查看
--半湖思絮
2. re: 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(一)
评论内容较长,点击标题查看
--菠萝大象
3. re: 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(一)
评论内容较长,点击标题查看
--donghc
4. re: 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(一)
@donghc
maven不是这样玩的呀,我的run是打包后用的,你仔细看了第三篇的内容么?在IDE里直接启动StartUp就行了,这个类是用来测试的
--菠萝大象
5. re: 修改mybatis-generator-1.3.2源码实现自定义代码生成详解(一)
评论内容较长,点击标题查看
--donghc
阅读排行榜
1. 使用jackson对Java对象与JSON字符串相互转换的一些总结(59297)
2. 在Eclipse中反编译Class文件完全详解(43529)
3. Quartz Spring与Spring Task总结(38527)
4. 使用XStream注解实现Java对象与XML互相转换的代码示例(33093)
5. Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(二)(32429)
评论排行榜
1. Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(五)(69)
2. Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(三)(47)
3. Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(一)(35)
4. Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解(二)(27)
5. Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)(26)