SSH框架集成步骤

25 篇文章 0 订阅
11 篇文章 0 订阅
本文详细介绍SSH(Struts+Spring+Hibernate)框架的集成步骤,包括Struts与Spring的整合配置、Spring与Hibernate的数据源及会话工厂配置、事务管理器设置等关键技术点。
摘要由CSDN通过智能技术生成

 

SSH框架集成步骤

1.集成Strutsspring

1.1 struts-config.xml中添加以下配置

  <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

<!-- 1,指定配置文件的类路径-->

<set-property property="contextConfigLocation"

value="classpath:applicationContext.xml" />

</plug-in>

1.2 配置spring框架对strutsAction的控制,在struts-config.xml中增加以下配置项

<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor">

</controller>

2.集成springhibernate

2.1springapplicationContext.xml文件中配置dataSource sessionFactory节点:

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName"

value="com.microsoft.sqlserver.jdbc.SQLServerDriver">

</property>

<property name="url"

value="jdbc:sqlserver://localhost:1433;databaseName=kehu">

</property>

<property name="username" value="sa"></property>

<property name="password" value="sa"></property>

</bean>

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="configLocation"

value="classpath:hibernate.cfg.xml">

</property>

</bean>

2.2 修改项目中的dao类,所有dao都继承自HibernateDaoSupport

代码示例:

public class BaseHibernateDAO extends HibernateDaoSupport{

protected void add(Object item) {

super.getHibernateTemplate().save(item);

}

//…省略部分代码

}

2.3 在springapplicationContext.xml文件中配置事务管理器

<!-- 配置事务管理器 -->

<bean id="transactionManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<!-- 指定对应的数据源 -->

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

2.4在springapplicationContext.xml文件中配置事务通知

1)需要先修改配置文件的头部信息:

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

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

">

2)配置事务通知节点:

<!-- 利用spring2.0方式配置事务通知器 -->

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<!-- 配置事务规则 -->

<tx:attributes>

<tx:method name="add*" propagation="REQUIRED" />

<tx:method name="update*" propagation="REQUIRED" />

<tx:method name="del*" propagation="REQUIRED" />

<tx:method name="*" propagation="SUPPORTS" read-only="true" />

</tx:attributes>

</tx:advice>

3)配置事务aop

<!-- 配置事务aop -->

<aop:config>

<!-- 定义一个事务切面 -->

<aop:pointcut id="bizMethods"

expression="execution(* com.aptech.jb.epet.biz.*.*(..) )" />

<!-- 组合事务通知和切面 -->

<aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods" />

</aop:config>

注意:事务切面节点中的expression属性的表达式介绍

execution(modifiers-pattern? 

ret-type-pattern 

declaring-type-pattern? 

name-pattern(param-pattern) 

throws-pattern?)

括号中各个pattern分别表示

修饰符匹配(modifier-pattern?)、

返回值匹配(ret-type-pattern)、

类路径匹配(declaring-type-pattern?)、

方法名匹配(name-pattern)、

参数匹配((param-pattern))、

异常类型匹配(throws-pattern?),
其中后面跟着“?”的是可选项。

在各个pattern中可以使用“*”来表示匹配所有。在(param-pattern)中,

可以指定具体的参数类型,多个参数间用“,”隔开,

各个也可以用“*”来表示匹配任意类型的参数,

(String)表示匹配一个String参数的方法;(*,String)表示匹配有两

个参数的方法,

第一个参数可以是任意类型,而第二个参数是String类型;

可以用(..)表示零个或多个任意参数。

现在来看看几个例子:

1execution(* *(..))

表示匹配所有方法

2execution(public * com. savage.service.UserService.*(..))

表示匹配com.savage.server.UserService中所有的公有方法

3execution(* com.savage.server..*.*(..))

表示匹配com.savage.server包及其子包下的所有方法

3.在spring配置文件中配置daobean

<!-- 配置项目中的dao类 -->

<bean id="petInfoDao"

class=" com.aptech.jb.epet.dao.hibimpl.PetInfoDAOHibImpl ">

<property name="sessionFactory" ref="sessionFactory"></property>

</bean>

注意:一定要记得注入sessionFactory属性

4.配置对应的bizaction即可

<!-- 配置项目中的Biz -->

<bean id="petInfoBiz"

class="com.aptech.jb.epet.biz.impl.PetInfoBizImpl">

<property name="petInfoDAO" ref="petInfoDao"></property>

</bean>

<!—配置项目中的Action,注意没有id属性à

<bean name="/pet" class="com.aptech.jb.epet.web.action.PetAction">

<property name="petDiaryBiz" ref="petDiaryBiz"></property>

<property name="petInfoBiz" ref="petInfoBiz"></property>

</bean>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值