Spring包装Hibernate的话所有的基本配置都写在applicationContext.xml文件中.
<!-- (读) 数据源 -->
<bean id="readDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${readDataSource.driver}</value>
</property>
<property name="url">
<value>${readDataSource.url}</value>
</property>
<property name="username">
<value>${readDataSource.name}</value>
</property>
<property name="password">
<value>${readDataSource.password}</value>
</property>
</bean>
<!-- (写) 数据源 -->
<bean id="writeDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>${writeDataSource.driver}</value>
</property>
<property name="url">
<value>${writeDataSource.url}</value>
</property>
<property name="username">
<value>${writeDataSource.name}</value>
</property>
<property name="password">
<value>${writeDataSource.password}</value>
</property>
</bean>
<!-- hibernate配置文件 -->
<bean id="hibernateconfig" class="org.springframework.core.io.ClassPathResource">
<constructor-arg value="hibernate.cfg.xml"></constructor-arg>
</bean>
<!-- (读)hibernate数据库链接 -->
<bean id="readSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="readDataSource"></property>
<property name="configLocation" ref="hibernateconfig"></property>
</bean>
<!-- (写)hibernate数据库链接 -->
<bean id="writeSessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="writeDataSource"></property>
<property name="configLocation" ref="hibernateconfig"></property>
</bean>
<!-- (读)jdbc模板 -->
<bean id="readJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource"><ref local="readDataSource"/></property>
</bean>
<!-- (写)jdbc模板 -->
<bean id="writeJdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource"><ref local="writeDataSource"/></property>
</bean>
我遇到的情况是配置完后tomcat6能启动,但是访问是就抛出no bean named 'sessionFactory'is defined
原因是在web.xml中有配置sessionFilter的过滤器,它用来控制session的开关,它指向的类是
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
这个类中有个setSessionFactoryBeanName的方法默认值是“sessionFactory”,而我把sessionFactory的名字改为了readSessionFactory和wirteSessionFactory。
这时可以去web.xml中设置sessionFactory的beanName为
readSessionFactory或wirteSessionFactory,但是只能设置一个值,而我要用的是双数据库。最后的解决方案是我在web.xml配置了两个filter把sessionFactoryBeanName初始化成不同的值代码如下
<filter>
<filter-name>readSessionFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>readSessionFactory</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>readSessionFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter>
<filter-name>writeSessionFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>writeSessionFactory</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>writeSessionFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
这时你在配置dao时就可选择不同的sessionFactory,而且他们的session就交由不同的filter控制开关了。
分享到:
相关推荐
这个"Spring2.5+Struts2.0+Hibernate3.0例子"的压缩包文件,很可能是为了展示如何将这三个框架集成在一起,实现数据持久化、业务逻辑控制和视图呈现的无缝配合。开发者通常会在这个例子中找到配置文件(如web.xml、...
Struts2.0、Spring2.0和Hibernate3.0是Java Web开发中经典的MVC框架组合,被誉为SSH(Struts、Spring、Hibernate)框架。这个项目旨在展示如何将这三个框架进行集成,以便在实际应用中实现高效的数据访问和业务逻辑...
在Struts2.0+Hibernate3.0+Spring2.0的整合中,首先,我们需要在项目中引入这三个框架的库文件,这些库文件通常位于"lib"目录下。Struts2的核心库包括struts2-core、struts2-convention-plugin等,Hibernate的库有...
在IT行业中,`Struts1.2`、`Hibernate3.0` 和 `Spring2.0` 是三个非常重要的框架,它们分别代表了MVC(Model-View-Controller)架构、对象关系映射(ORM)以及依赖注入和企业级应用框架的基石。这个压缩包文件的标题...
这个"spring2.0+hibernate3.0+struts2.0整合jar包"是将这三个框架的特定版本打包在一起,方便开发者快速搭建基于SSH的开发环境。下面我们将详细探讨这三大框架及其整合的关键知识点。 **1. Spring框架(2.0版)** ...
Struts1.x、Spring2.0 和 Hibernate3.0 是经典的 Java Web 开发框架组合,被称为 SSH(Struts + Spring + Hibernate)。这个组合在过去的十几年里被广泛应用,为开发人员提供了一个强大的、全面的企业级应用解决方案...
本项目基于Struts2.0、Spring2.0和Hibernate3.0,提供了SSH2的实践案例,便于开发者学习和理解。 **Struts2.0** Struts2是一个开源的MVC(Model-View-Controller)框架,它是Struts1的升级版,引入了更多现代Web...
自己研究了一个多星期了,咨询了好多高手,也看了好几个视频,终于做成了S2SH的整合。我的平台是:MyEclipse6.0、Sql Server 2000、Tomcat6.0。压缩包里是整个项目,带jar包,可以直接导入,但数据库得自己按照...
Struts1.3.8_Spring2.0_hibernate3.0(jars)是一个整合了三个主流Java企业级开发框架的压缩包,分别是Struts、Spring和Hibernate。这些框架在Java Web开发中扮演着至关重要的角色,它们各自解决了一部分问题,而组合...
本文旨在通过一个简单的登录示例项目,详细介绍如何在Netbeans IDE环境下构建基于Struts2.0、Spring2.5与Hibernate框架的应用程序。 #### 二、环境搭建与准备 ##### 1. 软件需求 - JDK 1.6:确保安装了正确的Java...
jbpm负责流程管理,Spring2.5作为整体的容器,管理各个组件的生命周期和依赖关系,Hibernate3.0处理数据库交互,而Struts2.0则作为前端控制器,处理用户请求并展示结果。这样的组合在当时的开发环境中非常流行,因为...
这里我们关注的是一个整合了Spring 2.0、Hibernate 3.0、Struts 1.1以及XFire 1.2的项目。这些技术都是Java Web开发中的重要组件,各自在应用程序的不同层面提供服务。 Spring 2.0是Java企业级应用中的一个核心框架...
Spring3.0涵盖了IoC容器、数据访问/集成、Web、AOP、工具和支持等多个模块。特别是Spring的DAO和事务支持,可以无缝集成Hibernate,实现数据库操作的统一管理。同时,Spring MVC是其Web层的一个强大组件,提供了模型...
综上所述,通过以上步骤可以有效地将Struts2.0、Spring2.5和Hibernate3.0这三个框架整合在一起,形成一个完整的Web应用程序开发框架。这种整合不仅可以提高开发效率,还能增强应用的可维护性和扩展性。
Struts2.0、Spring2.5和Hibernate3.0是Java Web开发中经典的三大框架,它们各自在应用程序的不同层面提供了强大的支持,并且通过合理的整合,可以构建出高效、灵活的MVC(Model-View-Controller)架构的应用程序。...
《深入剖析Netctoss2:基于Struts2、Spring2.0与Hibernate3.0的框架集成实践》 Netctoss2是一个典型的Java Web应用程序,它巧妙地融合了Struts2、Spring2.0和Hibernate3.0这三大主流开源框架,以实现高效、灵活的...
Spring框架则是一个全面的企业级应用开发框架,它涵盖了依赖注入、AOP(面向切面编程)、数据访问、Web应用、任务调度等多个方面。Spring3.0版本引入了大量新特性,如XML配置的替代——基于注解的配置,以及...
《Java人力资源管理系统详解——基于Spring MVC、Spring 2.0与Hibernate 3.0框架》 在现代企业管理中,人力资源管理扮演着至关重要的角色。利用先进的技术手段进行人力资源的信息化管理,可以极大地提高企业的运营...
在实际开发中,开发者会将这三个框架的jar包整合到项目中,例如在描述中提到的"struts2+spring2.5+hibernate3.3",可能表示的是一个使用了Struts2.2、Spring3.0和Hibernate3.3的项目配置。文件名称列表中的"struts2+...
+ 软件环境:Tomcat 6.0、Struts 2.0 + Spring 3.0 + Hibernate 3.0 框架、JSP+CSS+JavaScrip+AJax 技术、SQL Server 数据库 + 硬件环境:Windows XP + 开发工具:MyEclipse8.5 + 项目职责: - 采用 DIV+CSS+...