- 浏览: 323279 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (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 618Java8 netty jvm kafaka消息队列 上传下载 ... -
计算机各种单位讲解及换算
2017-12-13 13:54 1635我还听过有UK的 一、最小单位:位(bit,缩写为b) 在原 ... -
JAVA字符串格式化-String.format()和MessageFormat的使用
2017-12-05 10:39 1436String.format()常规类型的格式化 Stri ... -
eclipse启动项目常见问题
2017-11-16 17:46 1180今儿遇到了个问题,ecli ... -
字符编码笔记:ASCII,Unicode和UTF-8
2017-10-23 16:37 456讲的太牛逼了: http://ww ... -
emoji简单讲解
2017-10-23 15:17 972emoji处理方式大起底 http://blog.csdn.n ... -
BigDecimal讲解
2017-10-12 15:58 442BigDecimal 由任意精度的整数非标度值 和 32 位的 ... -
eclips 控制台console上不打印信息
2017-09-06 21:53 5791、进windows菜单 -> show view -& ... -
详解RequestMappingHandlerMapping和RequestMappingHandlerAdapter
2017-08-29 17:08 2966http://donald-draper.iteye.com/ ... -
用@ExceptionHandler 来进行切面异常处理
2017-08-29 11:47 2307有时候我们想处理某个类里Controller中抛出的异常怎么搞 ... -
Spring 注解@Component、@Repository、@Service、@Controller区别
2017-08-28 15:27 1009spring 2.5 中除了提供 @Com ... -
线程的一点小总结
2017-08-23 20:36 705java中main方法启动的是一个进程还是一个线程? 答:是一 ... -
线程池
2017-08-23 17:35 518诸如Web 服务器、数据库 ... -
Class源码大概讲解
2017-08-23 16:47 507http://blog.csdn.net/a327369238 ... -
Spring 事务相关
2017-08-14 12:10 471Transactionz注解的readOnly ... -
把时间当做朋友-前言
2017-08-13 20:47 403要管理的不是时间,而是自己。人们生活在同一个世界,却又各自 ... -
单例里面的方法讲解
2017-08-11 14:55 487spring里的controller是单例的。系统针对每个co ... -
eclipse拷贝出来的项目名称还是原来的
2017-07-26 16:46 1076需要修改的有如下几个地方: 1、pom.xml里面打包的名字一 ... -
自定义hibernate方言,新增自定义函数
2017-06-27 10:47 875按位与运算(&)在许多数据库中都是支持的,遗憾的是,H ... -
http请求参数:header body paramter三种参数区别、联系
2017-06-19 10:46 488812345
相关推荐
整合使用最新版本的三大框架(即Struts2、Spring4和Hibernate4),搭建项目架构原型。 项目架构原型:Struts2.3.16 + Spring4.1.1 + Hibernate4.3.6。 此外,还有:log4j、slf4j、junit4、ehcache等知识点。 项目...
总的来说,"最新项目系统:Struts2+Spring4+Hibernate4三大框架整合"为学习和实践Java Web开发提供了一个实用的平台,对于提升开发者的技术水平和项目经验具有极大的帮助。通过深入研究和实践,开发者可以掌握Java ...
Struts2 Spring3 Hibernate3.3框架整合,增删改查,包含有数据库建表语句,包含有JAR包,包含有源代码。包含有事务的配置以及运用。使用的是Oracle的序列来提供的主键自增,建表和建立序列的sql语句,已经放在工程...
Struts、Spring、Hibernate,这三大框架是Java Web开发中的基石,它们的集成极大地提高了开发效率,降低了代码的复杂性。SSH(Struts + Spring + Hibernate)框架集成旨在实现MVC(Model-View-Controller)设计模式...
在"struts2+hibernate+spring框架整合实列"中,通常会按照以下步骤进行整合: 1. **配置环境**:首先确保所有框架的库文件已添加到项目类路径中,并设置好相应的版本兼容性。 2. **配置Struts2**:在web.xml中配置...
三大框架整合项目包!整合详解示例!详细示范了当前java里面流行的三大框架的整合,对于spring的配置文件applicationContext.xml做了详细的注释说明,里面包含数据库连接池、Hibernate里的SessionFactory、事务等...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合应用广泛用于构建复杂的Web应用程序,如本例中的图书馆管理系统。这个系统实现了用户登录和注册功能,并且提供了对书籍表的操作,包括增、删、改...
SSH框架,即Struts2、Hibernate和Spring的组合,是Java Web开发中广泛使用的三大开源框架。它们各自负责Web应用程序的不同层面,通过整合可以提供一套完整的解决方案,实现MVC(Model-View-Controller)设计模式,...
Struts、Hibernate和Spring是Java Web开发中的三大主流框架,它们各司其职,共同构建了一个强大的企业级应用开发环境。在这个"用Struts+Hibernate+Spring三大框架开发的图书管理系统"中,我们可以深入理解这三大框架...
Struts2、Hibernate和Spring是Java Web开发中的三大框架,它们各自负责不同的职责:Struts2主要用于MVC(Model-View-Controller)架构的实现,提供控制层的支持;Hibernate是对象关系映射(ORM)工具,负责数据持久...
在IT领域,Spring、Struts和Hibernate这三大框架是Java Web开发中的重要组成部分。它们各自承担着不同的职责,Spring提供全面的容器管理,Struts处理MVC(模型-视图-控制器)架构,而Hibernate则负责对象关系映射。...
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
SSH是Java开发中广泛使用的三大开源框架,包括Struts2、Hibernate和Spring。这三大框架在Web应用开发中各自承担着不同的职责,协同工作以提高开发效率和代码质量。 Struts2是MVC(Model-View-Controller)设计模式...
《Spring+Struts+Hibernate整合开发》是一本深入讲解企业级Java应用开发的书籍,它主要聚焦于三大著名开源框架——Spring、Struts和Hibernate的集成与应用。这些框架是Java Web开发中的基石,广泛应用于各种复杂的...
Struts2、Spring和Hibernate是Java Web开发中的三大主流框架,它们各自负责应用程序的不同层面:Struts2处理表现层逻辑,Spring提供业务层管理和依赖注入,而Hibernate则专注于持久化层,管理数据库交互。...
Struts2、Spring3和Hibernate4是Java Web开发中三个非常重要的开源框架,它们分别负责MVC模式中的表现层、业务层和数据访问层。这三个框架的整合,通常被称为SSH整合,可以提供一个高效、灵活且功能强大的企业级应用...
本项目以"Spring+Struts2+Hibernate"三大框架为核心,旨在实现一个校园精品课程网的后台系统,提供丰富的功能和良好的用户体验。下面将详细介绍这三个框架以及它们在该项目中的应用。 1. Spring框架:Spring是Java...
Struts2、Spring和Hibernate是Java Web开发中的三大框架,它们的整合(SSH)极大地提升了开发效率和项目的可维护性。下面将详细讲解这三大框架的核心功能以及整合过程中的关键知识点。 1. **Struts2**:Struts2是一...
Struts2、Spring和Hibernate是Java Web开发中的三大主流框架,它们各自负责应用程序的不同层面,协同工作可以构建出高效、可维护的复杂Web应用。在本资源中,"struts2 spring hibernate框架技术与项目实战 光盘源码 ...