Spring4.0、Hibernate4.0与Struts2.3集成教程:详解配置与实践
"本文档详细介绍了如何在Spring 4.0版本、Hibernate 4.0版本和Struts 2.3版本之间进行整合配置。作者已经进行了测试,并确认这套配置可以正常运行。主要关注的是Spring框架中的核心配置文件`application.xml`,该文件包含了以下几个关键部分: 1. Spring Context扫描包:通过`<context:component-scan>`元素,配置了组件扫描的范围,即`base-package="com.s4s2h4.*"`. 这意味着Spring将自动检测和管理该包及其子包下的所有Spring beans,包括那些实现了接口、标记为@Component、@Service、@Repository或@Controller的类。 2. 数据源配置:`<bean id="dataSource" class="org.springframework.jdbc.datasource">` 这部分定义了一个Spring JDBC数据源,可能是`org.springframework.jdbc.datasource.DriverManagerDataSource`或者更高级的数据源实现,如JNDI或HikariCP。这是Spring与Hibernate交互的基础,提供对数据库的连接管理。 3. 事务管理:Spring的事务管理配置没有完全展示出来,但通过`xmlns:tx`和`http://www.springframework.org/schema/tx`,我们可以推测后续可能有`<tx:annotation-driven/>`或者`<transaction-manager>`元素,用于配置基于注解的事务处理或指定一个具体的事务管理器。 4. AOP(面向切面编程)支持:`xmlns:aop`和`http://www.springframework.org/schema/aop`表明了Spring AOP的支持,这有助于实现诸如事务传播、异常通知等功能,可能在实际配置中会使用到`@AspectJ`或`@Aspect`注解来定义切面。 5. 依赖注入和XML配置:文档中提到的`xmlns`前缀定义了Spring框架的不同模块,如`beans`、`context`、`tx`和`aop`,这些是XML配置文件中用来引用Spring各种功能的命名空间。 这篇文档的核心内容围绕着Spring 4.0的配置,展示了如何在一个项目中集成Spring的依赖注入、数据访问以及Struts 2.3的控制器和事务管理,以实现完整的业务逻辑处理。对于开发人员来说,这是一个重要的参考,可以帮助他们理解如何在现代Java Web应用中组织和管理组件间的依赖关系。"
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<!-- 自动扫描所有注解该路径 -->
<context:component-scan base-package="com.s4s2h4.*" />
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName"
value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
</property>
<property name="url"
value="jdbc:sqlserver://192.168.1.157;instanceName=eqmis;DatabaseName=db_easyui">
</property>
<property name="username" value="sa"></property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<!--Spring 3.x 对 Hibernate 4.x 不提供 HibernateDaoSupport,所以在dao的实现层注入SessionFactory -->
<prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>
<!--注意:Spring3.x不能为thread,否则报错:org.hibernate.HibernateException: save is not valid without active transaction ,
以上配置在 增加、删除、修改 操作时,都能正确执行,事务也正常执行!
当执行 查询 操作时,不需要事务的支持,问题来了,报错:org.hibernate.HibernateException: No Session found for current thread
意思是必须在transcation.isActive()条件下才能执行,
可以解决办法是:当方法不需要事务支持的时候,使用 Session session = sessionFactory.openSession()来获得Session对象,问题解决!
-->
<!-- <prop key="hibernate.current_session_context_class">thread</prop> -->
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
<property name="mappingResources">
<list>
<value>com/s4s2h4/services/entity/Down.hbm.xml</value>
<value>com/s4s2h4/services/entity/Menu.hbm.xml</value>
</list>
剩余12页未读,继续阅读
- 粉丝: 351
- 资源: 14
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++标准程序库:权威指南
- Java解惑:奇数判断误区与改进方法
- C++编程必读:20种设计模式详解与实战
- LM3S8962微控制器数据手册
- 51单片机C语言实战教程:从入门到精通
- Spring3.0权威指南:JavaEE6实战
- Win32多线程程序设计详解
- Lucene2.9.1开发全攻略:从环境配置到索引创建
- 内存虚拟硬盘技术:提升电脑速度的秘密武器
- Java操作数据库:保存与显示图片到数据库及页面
- ISO14001:2004环境管理体系要求详解
- ShopExV4.8二次开发详解
- 企业形象与产品推广一站式网站建设技术方案揭秘
- Shopex二次开发:触发器与控制器重定向技术详解
- FPGA开发实战指南:创新设计与进阶技巧
- ShopExV4.8二次开发入门:解决升级问题与功能扩展