SSH配置详解:关键点与问题解决

需积分: 5 1 下载量 95 浏览量 更新于2024-10-01 收藏 2KB TXT 举报
"这篇文章主要探讨了SSH框架搭建过程中的关键步骤和常见问题,涉及Struts、Spring和Hibernate的集成,并提到了配置文件如WEB.XML和APPLICATION.XML的重要性。内容包括了不同方式下的Spring与Struts的整合,以及可能出现的类加载错误和事务配置的解释。" 在SSH(Struts、Spring、Hibernate)框架搭建中,整合是核心环节。首先,有三种不同的SSH整合方式: 1. 使用`plugin-struts-spring`:这种方式下,Action被Spring容器管理,通过`DelegatingActionProxy`代理实现。Action不再直接持有Service,而是通过依赖注入(DI)来调用Service。 2. 配置`struts-config.xml`:这里需要为每个Action指定类型(type),并让Spring处理Action的实例化。Action的业务逻辑仍然通过DI来调用Service。 3. 使用`AutowiringRequestProcessor`:这种方式更自动化,不需要在`struts-config.xml`中显式定义Action类型,由Spring自动装配Action和Service。但是,可能需要添加Spring AOP库以支持事务管理,这可能导致类加载错误。 类加载错误通常出现在缺少必要的库文件,如ASM库,这是Hibernate和CGLIB等框架用来动态生成字节码的库。确保Hibernate3的lib目录下包含正确的ASM版本,避免类找不到或方法不存在的错误。错误示例包括`NoClassDefFoundError`和`NoSuchMethodError`。 关于事务配置,Spring提供了多种事务传播行为(propagation),每种传播行为在不同场景下有不同的作用: - `propagation_required=0`:默认设置,如果当前存在事务,则加入,否则新建一个事务。 - `propagation_supports=1`:如果当前存在事务,则加入,否则不开启事务。 - `propagation_mandatory=2`:如果当前存在事务,必须加入,否则抛出异常。 - `propagation_required_new=3`:总是新建一个新的事务,与当前事务隔离。 - `propagation_not_supported=4`:当前事务被挂起,不支持事务。 理解这些配置选项对于正确管理和控制事务至关重要,它们直接影响到程序的并发性和数据一致性。因此,在SSH框架搭建时,不仅要注意组件的整合,还需要关注配置文件的正确性,以及类库的完整性和版本匹配,这样才能确保项目的顺利运行。