- 浏览: 314596 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (254)
- java (178)
- tomcat (6)
- 邮件 (1)
- smtp (1)
- Linux (2)
- 编码 (2)
- 导入工程 (1)
- Specification Level (1)
- hibernate (10)
- 字段类型 (1)
- 字段类型匹配 (1)
- 数据库 (3)
- sql (9)
- struts2 (8)
- 类型转换 (2)
- java,MyEclipse,SVN (1)
- Myecplise (4)
- 输入校验 (1)
- JFrame (2)
- Oracle (8)
- google (1)
- Swing (3)
- Fusioncharts (1)
- 找工作 (0)
- js (4)
- jsp (11)
- displaytag (1)
- spring (8)
- 工作 (1)
- String (1)
- 算法 (2)
- IO (1)
- xml (3)
- 设计模式 (1)
- UML (1)
- 文档 (1)
- ajax (1)
- 日常 (7)
- sql server (1)
- mysql (3)
- git (1)
- Maven (1)
- mongodb (1)
- postman (1)
最新评论
首先整合步骤见:iteye博客文章“java三大框架独立运行以及互相之间整合各自需要用到的jar文件以及配置方式 ”里面的 struts、hibernate、spring三大框架整合步骤。(按照这个步骤来整合框架开发项目)。
下面讲解struts2、hibernate、spring三个框架的整合:
Hibernate整合spring之后致命的一个问题是里面没有事务,没有配置事务,这样导致dao里面一个方法就在一个事务里面,而实际开发里面这种情况是很少见的,实际开发中我们经常是几个数据库操作放到同一个事务里面,要么同时成功,要么同时失败。以前使用事务都是通过transaction,开启事务或关闭事务,现在不用它了。实际上spring对事务提供了非常好的支持,依然使用了AOP的方式,采用那种申明性的事务,也就是说事务的代码都不用编写了,只需要配置好就可以了,在对应的方法上配置好事务,那么这个方法就具备了事务的功能。
另外在三个框架整合过程中,当我们把所有依赖jar文件都导入进来,把代码都编写好,把配置文件都配置好之后,启动tomcat,可能会报这样一个错误:
这个bug是由于java程序库的版本管理问题造成的,三大框架里面各自依赖的jar包可能有重复的,我们引入依赖之后,可能就同时导入了两个相同的但版本不同的jar包。我们会发现我们引入的jar包里面有两个相同的(只是版本不同):asm.jar和asm-2.2.3.jar,解决办法是到硬盘lib目录下删掉其中一个jar包,只留一个即可。
在附件这个工程里面,有数据源、连接池……等重要知识点模块,最后又加了事务处理。
注意:在代码编写过程中,不需要考虑事务,在代码编写完成之后并且正常运行之后再在配置文件里添加事务。然后在需要配置事务的方法上给它配置上事务即可。这里是用Spring提供的AOP的申明式事务的方式实现的。Spring里面的事务完全是通过AOP的方式实现的,Spring里面提供了一个事务管理器相关的类HibernateTransactionManager,如果想对某个方法或某个类里面的某些方法增加事务的话,要做两件事情:
1、 申明好HibernateTransactionManager这样一个bean。
2、 利用上一步申明的bean去增强需要使用事务的类。(通常情况下我们是将事务配置在service上,而不是配置在Dao 上,因为Dao操作是一个个独立的操作。而一个Service有可能同时引用到两个或是更多的Dao的方法,那么对于Service方法添加事务的话,那么这一个Service用到的所有Dao方法就在一个事务之内了,要么同时成功,要么同时失败。所以一般的业务开发上面,我们都将事务配置在Service这一层上)。
在配置事务的过程中,TransactionProxyFactoryBean是spring为我们提供的一个工厂类,用来为service层的对象生成具有事务的代理对象。
重点查看附件项目(重点查看Spring的配置文件applicationContext.xml)。
附件项目见自己csdn账号里面的资源:struts2、hibernate、spring三大框架整合项目包。这个项目包完整的演示了三大框架整合的示例代码。一定要经常多敲几次熟练熟练。
下面讲解struts2、hibernate、spring三个框架的整合:
Hibernate整合spring之后致命的一个问题是里面没有事务,没有配置事务,这样导致dao里面一个方法就在一个事务里面,而实际开发里面这种情况是很少见的,实际开发中我们经常是几个数据库操作放到同一个事务里面,要么同时成功,要么同时失败。以前使用事务都是通过transaction,开启事务或关闭事务,现在不用它了。实际上spring对事务提供了非常好的支持,依然使用了AOP的方式,采用那种申明性的事务,也就是说事务的代码都不用编写了,只需要配置好就可以了,在对应的方法上配置好事务,那么这个方法就具备了事务的功能。
另外在三个框架整合过程中,当我们把所有依赖jar文件都导入进来,把代码都编写好,把配置文件都配置好之后,启动tomcat,可能会报这样一个错误:
[color=red]严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1336) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:471) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) at java.security.AccessController.doPrivileged(Native Method) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:220) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) [/color]
这个bug是由于java程序库的版本管理问题造成的,三大框架里面各自依赖的jar包可能有重复的,我们引入依赖之后,可能就同时导入了两个相同的但版本不同的jar包。我们会发现我们引入的jar包里面有两个相同的(只是版本不同):asm.jar和asm-2.2.3.jar,解决办法是到硬盘lib目录下删掉其中一个jar包,只留一个即可。
在附件这个工程里面,有数据源、连接池……等重要知识点模块,最后又加了事务处理。
注意:在代码编写过程中,不需要考虑事务,在代码编写完成之后并且正常运行之后再在配置文件里添加事务。然后在需要配置事务的方法上给它配置上事务即可。这里是用Spring提供的AOP的申明式事务的方式实现的。Spring里面的事务完全是通过AOP的方式实现的,Spring里面提供了一个事务管理器相关的类HibernateTransactionManager,如果想对某个方法或某个类里面的某些方法增加事务的话,要做两件事情:
1、 申明好HibernateTransactionManager这样一个bean。
2、 利用上一步申明的bean去增强需要使用事务的类。(通常情况下我们是将事务配置在service上,而不是配置在Dao 上,因为Dao操作是一个个独立的操作。而一个Service有可能同时引用到两个或是更多的Dao的方法,那么对于Service方法添加事务的话,那么这一个Service用到的所有Dao方法就在一个事务之内了,要么同时成功,要么同时失败。所以一般的业务开发上面,我们都将事务配置在Service这一层上)。
在配置事务的过程中,TransactionProxyFactoryBean是spring为我们提供的一个工厂类,用来为service层的对象生成具有事务的代理对象。
重点查看附件项目(重点查看Spring的配置文件applicationContext.xml)。
附件项目见自己csdn账号里面的资源:struts2、hibernate、spring三大框架整合项目包。这个项目包完整的演示了三大框架整合的示例代码。一定要经常多敲几次熟练熟练。
发表评论
-
领域精通涉及技术点(不分先后)
2017-12-20 19:35 566Java8 netty jvm kafaka消息队列 上传下载 ... -
计算机各种单位讲解及换算
2017-12-13 13:54 1549我还听过有UK的 一、最小单位:位(bit,缩写为b) 在原 ... -
JAVA字符串格式化-String.format()和MessageFormat的使用
2017-12-05 10:39 1287String.format()常规类型的格式化 Stri ... -
eclipse启动项目常见问题
2017-11-16 17:46 1141今儿遇到了个问题,ecli ... -
字符编码笔记:ASCII,Unicode和UTF-8
2017-10-23 16:37 422讲的太牛逼了: http://ww ... -
emoji简单讲解
2017-10-23 15:17 919emoji处理方式大起底 http://blog.csdn.n ... -
BigDecimal讲解
2017-10-12 15:58 402BigDecimal 由任意精度的整数非标度值 和 32 位的 ... -
eclips 控制台console上不打印信息
2017-09-06 21:53 5411、进windows菜单 -> show view -& ... -
详解RequestMappingHandlerMapping和RequestMappingHandlerAdapter
2017-08-29 17:08 2913http://donald-draper.iteye.com/ ... -
用@ExceptionHandler 来进行切面异常处理
2017-08-29 11:47 2226有时候我们想处理某个类里Controller中抛出的异常怎么搞 ... -
Spring 注解@Component、@Repository、@Service、@Controller区别
2017-08-28 15:27 964spring 2.5 中除了提供 @Com ... -
线程的一点小总结
2017-08-23 20:36 661java中main方法启动的是一个进程还是一个线程? 答:是一 ... -
线程池
2017-08-23 17:35 478诸如Web 服务器、数据库 ... -
Class源码大概讲解
2017-08-23 16:47 477http://blog.csdn.net/a327369238 ... -
Spring 事务相关
2017-08-14 12:10 439Transactionz注解的readOnly ... -
把时间当做朋友-前言
2017-08-13 20:47 365要管理的不是时间,而是自己。人们生活在同一个世界,却又各自 ... -
单例里面的方法讲解
2017-08-11 14:55 457spring里的controller是单例的。系统针对每个co ... -
eclipse拷贝出来的项目名称还是原来的
2017-07-26 16:46 1031需要修改的有如下几个地方: 1、pom.xml里面打包的名字一 ... -
自定义hibernate方言,新增自定义函数
2017-06-27 10:47 843按位与运算(&)在许多数据库中都是支持的,遗憾的是,H ... -
http请求参数:header body paramter三种参数区别、联系
2017-06-19 10:46 477412345
相关推荐
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
希望此套框架整合对深入了解和学校Struts2+Spring4+Hibernate4三大框架整合技术有帮助
Struts2 Spring3 Hibernate3.3框架整合,增删改查,包含有数据库建表语句,包含有JAR包,包含有源代码。包含有事务的配置以及运用。使用的是Oracle的序列来提供的主键自增,建表和建立序列的sql语句,已经放在工程...
java s2sh三大框架整合的通讯录系统 界面美观 (1) 通信录实现浏览或查找通信录中记录,能够添加,删除,修改记录等。 (2) 用户处于只有登录之后才可以添加,删除,修改记录;如果没有登录只可以查看信息。 (3) 用户...
struts2+hibernate+spring框架整合实列
三大框架整合项目包!整合详解示例!详细示范了当前java里面流行的三大框架的整合,对于spring的配置文件applicationContext.xml做了详细的注释说明,里面包含数据库连接池、Hibernate里的SessionFactory、事务等...
struts2 + spring 3 + hibernate3.3整合实现图书馆管理系统登陆和注册,以及一个对书籍表的增删改查,分页显示。
struts2 hibernate spring 框架技术 最新整合 里面有struts2上传下载jar 图表jar包 fckediter jar包,实现添加用户 和显示用户信息 以及用display 进行的分页设置,供大家学习参考!
Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2Struts 2+Spring 3+Hibernate框架技术精讲与整合案例2
struts2 hibernate spring 三大框架进行整合
Struts2 Spring3 Hibernate4 框架完美整合
S2SH(struts2+spring+hibernate)三大框架整合
struts2.1.8+spring+hibernate框架整合所需jar包 其中还包括一个mysql数据库驱动包
ssh三大框架的整合步骤,非常详细。包含spring整合struts、spring整合hibernate、声明式事务说明等。
本代码是对Struts Hibernate Spring三大框架的结合 带有电子书和源码,以及三大框架整合的步骤
spring+struts2+hibernate框架整合,简单的demo,有需要可以参考参考
Struts 2+Spring 3+Hibernate框架技术精讲与整合案例Struts 2+Spring 3+Hibernate框架技术精讲与整合案例Struts 2+Spring 3+Hibernate框架技术精讲与整合案例Struts 2+Spring 3+Hibernate框架技术精讲与整合案例...
Spring+Struts2+Spring3+Hibernate3三大框架整合
三大框架的整合 spring struts hibernate 三者整合
ssh框架整合所需要的jar包以及核心配置文档、让你的ssh开发前奏打响