- 浏览: 319057 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
-
u010467022:
改为xxx,get(class,id)也不行,唯有lazy=f ...
failed to lazily initialize a collection of role问题 -
猜不透:
哥们,及时雨啊
failed to lazily initialize a collection of role问题 -
luhan158:
额,看不懂多少
failed to lazily initialize a collection of role问题 -
xiaoping8411:
<Connector port="80 ...
Tomcat优化 -
Mr.Cheney:
搜藏了 thanks
jQuery的插件列表
开发环境:
IDE:MyEclipse7.0
SSH:Struts1.2+Hibernate3.2+Spring2.0
整合方法:
1. 建立工程,添加Struts支持,与单独用Struts做开发的配置没什么不同,基本上就是一直“下一步”。
2. 添加Hibernate,当向导执行到配置SessionFactory时可跳过,因为SessionFactory最后由Spring负责生成。
3. 添加Spring,我选择的是2.0,当然也可以选择2.5,配置上大同小异。需要注意的是至少应引入一下四个库:Spring AOP Libraries、Spring Core Libraries、Spring Persistence Libraries和Spring Web Libraries,在接下来的步骤中不要忘了选中 “Create Spring SessionFactory”。
4 .Struts1.2和Spring2.0的整合
1)在web.xml中加入如下代码令服务器自动加载Spring
<context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext-*.xml,classpath*:applicationContext-*.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
2)当在struts-config.xml定义action时,需要将action的类型修改为
“org.springframework.web.struts.DelegatingActionProxy”
同时在Action的类中还需要提供所调用的业务对象的setter方法,让spring为其注入依赖的对象。
3)在spring的配置文件中定义action的bean,其中的name属性值必须与struts配置文件的path属性值相一致。
(建议将 action的scope属性值设置成"prototype",这样就避免了一些安全问题)
5. Spring2.0和Hibernate3.2的整合
1)所有的DAO类都必须继承HibernateDaoSupport基类,在这个类中可以获得Hibernate的各种核心接口(如Session、SessionFactory等),同时在配置时需要注入sessionFactory。
注:默认情况下Hibernate只有遇到运行时异常数据库操作才会回滚,普通异常不会回滚。
2)在Spring中配置SessionFactory,默认情况下MyEclipse已经为我们配置好了。
3)配置声明式事务,首先需要配置事务管理器
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean>
接下来需要配置事务管理的AOP
<!--定义事务的传播特性--> <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="delete*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="*" read-only="true"/> </tx:attributes> </tx:advice> <!--AOP的配置--> <aop:config> <aop:pointcut id="managersMethod" expression="execution(* com.test.manager.*.*(..))"/> <aop:advisor advice-ref="txAdvice" pointcut-ref="managersMethod"/> </aop:config>
需要注意的是,默认情况下MyEclipse没有引入相关的xmlSchema,也没有定义相关的命名空间,所以我们需要手动配置
xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
5. OpenSessionInView的处理
Open Session In View提供了一种简便的方法,较好地解决了lazy loading问题。它有两种配置方式OpenSessionInViewInterceptor和OpenSessionInViewFilter(具体参看SpringSide),功能相同,只是一个在web.xml配置,另一个在application.xml配置而已。
Open Session In View在request把session绑定到当前thread期间一直保持hibernate session在open状态,使session在request的整个期间都可以使用,如在View层里PO也可以lazy loading数据,如 ${ company.employees }。当View 层逻辑完成后,才会通过Filter的doFilter方法或Interceptor的postHandle方法自动关闭session。
其中spring提供了filter的处理方法,配置方法如下:
<filter> <filter-name>hibernateFilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class> </filter> <filter-mapping> <filter-name>hibernateFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
6. 对表单中中文的处理,spring中为我们提供了Encoding Filter,配置如下
<filter> <filter-name>Spring character encoding filter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>GBK</param-value> </init-param> </filter> <filter-mapping> <filter-name>Spring character encoding filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
问题处理
在配置完成后,进行测试时可能会产生一些问题,如
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
.\=?KHsQ
HK$;xo%5
该问题的解决方法如下: ~@^$j
wo+i^-zE
去掉类路径上的关于Hibernate的3个lib N} $:,R}
asm.jar <moLSm~B|K
asm-attrs.jar Rm oG/`x~
cglib-2.1.3.jar jb]k`$mW~
加入Spring中的以下4个lib JrM~POo+
asm-2.2.3.jar o[j(~$@P8
asm-commons-2.2.3.jar 4n:L7\u
asm-util-2.2.3.jar ]`Cga&Rh
cglib-nodep-2.1_3.jar e2jZ{s[
C%\7S0Id
发表评论
-
Java内存控制
2011-04-24 21:38 1476读取内存信息的函数 Runtime.getRuntim ... -
Java中String与byte[]的转换
2011-04-15 09:43 1450String -> byte[]: byte[] ... -
[转] Java中的hashCode方法
2010-09-26 15:32 1088首先,想要明白hashCode ... -
修改struts2中action的拓展名
2010-09-26 12:26 1046struts2中action的默认拓展名是".act ... -
Java类中的文件路径
2010-05-05 16:29 2118很多时候程序需要读取工程中的一些文件(如xml、propert ... -
float保留两位小数的方法
2010-05-05 16:19 4078有时候需要对float的小数位数进行限制,通常最简单的两 ... -
iBatis中insert语句返回插入后id的方法
2010-05-01 16:59 3285一直都在用iBatis来完成数据的持久化操作,可是一直都不知道 ... -
用BlazeDS实现Flex与Java通信
2010-03-12 19:26 1632最近项目中需要Flex与Java进行通信,初步选定使用Blaz ... -
iBatis对于空值的处理
2010-02-25 10:39 2013使用Ibatis作为数据库持久层的人都有体会,Iba ... -
iBatis结果集不支持char类型
2010-02-25 10:14 1437项目中用ibatis来完成持久化操作偶然间发现ibat ... -
[转]ibatis缓存的使用
2010-02-24 09:48 1007... -
roller源码研究(二)-- 博客中的ping
2009-11-25 15:01 1150今天在研究roller的 ... -
roller源码研究(一)-- eclipse中roller环境搭建
2009-11-25 13:10 3843最近一直在查找研究一些开源系统的源码,之前锁定了php ... -
一个简单的通知管理系统
2009-11-05 21:26 1374最近偶然的机会做了个小程序--通知管理系统,功能如下: ... -
连接DB2时“encoding not supported”问题解决
2009-10-11 22:07 3503使用JDBC连接DB2时,发生错误: com.ibm.db2 ... -
Eclipse下搭建Struts2开发环境
2009-10-09 15:54 14209作者:bukebushuo 来源 ... -
Jsp+Servlet+JDBC实现登录注册(二)
2009-07-13 22:58 48701. 开发数据库访问类 由于本次实验中只涉及到了 ... -
Jsp+Servlet+JDBC实现登录注册(一)
2009-07-13 22:54 48691. 搭建环境 2. 在MySQL 中建 ... -
EJB3.0实现登录注册(二)
2009-07-12 22:11 10259. 编写消息驱动bean 消息驱动bean的主要用于接受和 ... -
EJB3.0实现登录注册(一)
2009-07-12 22:08 1722环境 IDE:Eclipse3.4(JavaEE版) ...
相关推荐
下面将详细介绍SSH框架整合的相关知识点。 1. **Spring框架**:Spring是一个全面的后端应用程序框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能。在SSH整合中,Spring主要作为应用的核心,负责管理其他...
SSH框架整合教程是Java开发领域中的一个重要主题,它涉及到三个核心的开源框架:Struts、Spring和Hibernate。这些框架在企业级应用开发中扮演着关键角色,分别负责表现层、业务逻辑层和数据持久化层的管理。 Struts...
SSH框架整合是Java Web开发中常见的一种技术栈组合,它由Spring、Struts2和Hibernate三个框架构成。这个"SSH框架整合jar包"是开发者为了方便项目构建,避免手动逐个添加和配置这三个框架所需的库文件而制作的集合。...
SSH框架整合是Java Web开发中常见的一种技术栈组合,它由Spring、Struts2和Hibernate三个框架组成。这些框架分别负责应用的依赖注入(DI)、表现层管理和持久化层操作,为开发者提供了一套高效、灵活的解决方案。...
总结来说,SSH框架整合涉及到的主要知识点包括:Struts2的动作调度、拦截器机制、结果类型;Spring的依赖注入、AOP、事务管理;以及Hibernate的对象映射、数据访问。通过合理配置和调优,SSH能够帮助开发者高效地...
在这个“SSH框架整合项目源码”中,可以看到如何将这三个框架协调工作,形成一个完整的开发体系。发布系统通常包括用户登录、权限管理、内容发布、审核、查询等功能。开发者可能已经对这些功能进行了优化,例如提高...
SSH框架整合是一个常见的Java开发中的概念,它涵盖了Spring、Struts和Hibernate三个主要的开源框架。这个"SSH框架整合完整版"显然提供了一个完整的示例,可以帮助开发者理解如何将这三个框架协同工作,以构建高效的...
SSH框架整合是一个常见的Java Web开发技术栈,由Struts、Spring和Hibernate三个开源框架组成,分别负责表现层、业务逻辑层和数据访问层。在这个实例中,我们将深入探讨这三个框架如何协同工作,实现一个完整的增删改...
这个压缩包“ssh框架整合jar包”显然是一个包含这三大框架所需库文件的集合,适用于初学者或者需要快速搭建SSH环境的开发者。 Spring框架是一个全面的后端应用程序管理框架,它主要处理业务逻辑和依赖注入。Spring...
SSH框架整合是Java开发中常见的技术实践,它涵盖了Spring、Struts和Hibernate这三个核心组件,分别负责控制层、视图层和持久层的管理。本文将深入探讨SSH框架整合的具体步骤,帮助Java爱好者更好地理解和应用这项...
SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3个方案)SSH框架整合图解(3...
SSH框架整合是Java开发中的一个重要话题,主要涉及Spring、Struts和Hibernate这三个开源框架的集成应用。本教程《SSH框架整合实战教程》旨在帮助Java程序员深入理解和熟练掌握这些技术,以便在实际项目开发中实现...
SSH框架整合是Java Web开发中常见的一种技术组合,它由Spring、Struts2和Hibernate三个开源框架构成。Spring提供依赖注入(DI)和面向切面编程(AOP),Struts2作为MVC框架负责控制层,而Hibernate则作为对象关系...
《J2EE SSH框架整合详解》 在Java企业级开发中,SSH(Struts、Spring、Hibernate)框架的整合是常见的技术实践,它能够提供强大的表现层、业务逻辑层和数据持久化层的支持。SSH框架整合的核心在于如何将这三个框架...
SSH框架整合是Java Web开发中常见的一种技术组合,它由Struts2、Spring和Hibernate三个开源框架集成,用于构建高效、灵活的企业级应用。这三个框架分别负责MVC(Model-View-Controller)架构的不同部分,提供了强大...
SSH框架整合实战教程是针对Java开发者的高级课程,旨在教授如何高效地集成Spring、Struts和Hibernate这三个流行框架,以构建强大的企业级应用。SSH框架是Java Web开发中的经典组合,Spring提供了依赖注入和AOP(面向...
总结来说,SSH框架整合是Java Web开发中的一个重要选择,它利用Spring的控制反转和面向切面编程,Struts2的MVC模型,以及Hibernate的对象关系映射,为企业级应用开发提供了一套成熟的解决方案。导入这个整合包,...