SSH集成开发

来源:互联网 发布:期货数据接口 编辑:程序博客网 时间:2024/05/19 19:56
SSH集成: DataSource-->SessionFactory-->Dao-->Biz-->Action
Spring+Hibernate集成
1.添加Spring和Hibernate的jar文件
antlr-2.7.6.jar
commons-collections-3.1.jar
commons-dbcp.jar
commons-logging.jar
commons-pool.jar
dom4j-1.6.1.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate3.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
log4j-1.2.15.jar
slf4j-api-1.6.1.jar
spring.jar
其中commons-dbcp.jar,commons-pool.jar(连接池)
2.添加Hibernate的实体及其映射文件
3.编写Dao及其实现类(继承HibernateDaoSupport),Biz及其实现类 
4.添加Spring的配置文件
<!--1.配置数据源DataSource -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destory-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mydb"></property>
<property name="username" value="root"></property>
<property name="password" value="java"></property>
</bean>
<!-- 2.配置SessionFactory,并注入数据源-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- 映射文件 -->
<property name="mappingResources">
<list>
<value>com/xasxt/entity/Userinfo.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
</props>
</property>
</bean>
<!-- 3.配置Dao,将SessionFactory注入 -->
<bean id="userDao" class="com.xasxt.dao.impl.UserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 4.配置Biz,将Dao注入 -->
<bean id="userBiz" class="com.xasxt.biz.impl.UserBizImpl">
<property name="userDao" ref="userDao"></property>
</bean>
5.测试
6.配置Spring声明式事务(添加aspectj的jar文件aspectjrt.jar,aspectjweaver.jar)
  a.事务管理器(注入sessionFactory)
  b.事务通知(传播式行为,引入事务管理器)
  c.切入点
  d.通知者(切入点和事务通知)
<!-- 事务管理器,注入sessionFactory -->
<bean id="transctionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!--事务通知 -->
<tx:advice id="txAdvice" transaction-manager="transctionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED"/>
<tx:method name="update*" propagation="REQUIRED"/>
<tx:method name="delete*" propagation="REQUIRED"/>
<tx:method name="*" propagation="SUPPORTS"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 定义切入点 -->
<aop:pointcut expression="execution(* com.xasxt.biz.*.*(..))" id="bizMethods"/>
<!-- 将事务通知和切入点告知通知者 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="bizMethods"/>
</aop:config>
7.测试


Spring+Struts整合
1.添加struts的jar文件,struts2-spring-pluginxxx.jar
2.配置web.xml
  <!-- 对Spring容器进行实例化,加载spring的配置文件 -->
   <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
   </listener>
   <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:applicationContext*.xml</param-value>
   </context-param>
  <!-- Struts2的核心过滤器 -->
  <filter>
  <filter-name>struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>
3.编写Action,并在spring配置文件和struts的配置文件中分别配置该Action
applicationContext.xml
<!-- 配置Struts中的action,注入Biz -->
<bean id="userAction" class="com.xasxt.action.UserAction">
<property name="userBiz" ref="userBiz"></property>
</bean>
struts.xml
<!-- 伪类class="spring中Action的Id" -->
<action name="userAction_*" class="userAction" method="{1}">
<result>/list.jsp</result>
</action>
4.测试

0 0
原创粉丝点击