你的位置:首页 > Java教程

[Java教程]SSH框架中Spring框架搭建的初步理解(一)


  接手基于SSH框架的web项目已经一个月有余了。早有听说javaweb三大框架,第一次接触,先来说下感受。

  我感觉SSH框架最明显的优点有如下:

  1.  采用MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现。
  2.  通过配置文件,就可以掌握整个系统各个部分之间的关系。
  3.    通过AOP,可以实现事务管理和日志管理。

  其中Spring框架能使你通过最简单可行的方法来解决问题,这是非常高效的。但是它的搭建也略微复杂,尤其是对于我这样的新手来说,所以开此篇记录一下SPring框架的搭建:

  • 创建web项目,导入SSH基础jar包,在Web.

  

1  <listener> 2     <listener- class>org.springframework.web.context.ContextLoaderListener</listener-class> 3   </listener>

  通过这个listener可加载Spring框架,struts2也同时交由Spring来管理了

  • 打开applicationContext.
1   <import resource="config/applicationContext.2 3   <import resource="servicebean/applicationContext*.4   5   <import resource="databasebean/applicationContext*.6 7   <import resource="actionbean/applicationContext*. 

   以上代码不难理解,分别是配置,服务,数据库,action的管理,注意在WEB-INF下创建对应文件夹以及相应配置文件即可,下面我们来看下

 Spring和Hibernate的结合。

  • _applicationContext-database.
1   <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"2     destroy-method="close">3     <property name="driverClassName" value="${xianrui.database.driverClassName}" />4     <property name="url" value="jdbc:${xianrui.database.type}://${xianrui.database.address}:${xianrui.database.port}/${xianrui.database.name}?${xianrui.database.encode}" />5     <property name="username" value="${xianrui.database.username}" />6     <property name="password" value="${xianrui.database.password}" />7 8   </bean>

  主要配置四个:驱动名,url,用户名和密码 value用的是公司配置的值,根据实际情况修改成自己的就好啦~

  • applicationContext-hibernate.
 1   <bean id="sessionFactory" 2     class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> 3     <property name="dataSource"> 4       <ref bean="dataSource" /> 5     </property> 6     <property name="mappingLocations"> 7       <list> 8         <value>classpath:com/xsq/model/**/*.hbm. 9       </list>10     </property>11     <property name="hibernateProperties">12       <props>13         <prop key="hibernate.dialect">${xianrui.hibernate.dialect}</prop>14   </props>15     </property>16   </bean>  17 18 <!-- 配置事务管理器bean,使用HibernateTransactionManager事务管理器 -->19   <bean id="transactionManager"20     >21     <property name="sessionFactory">22       <ref bean="sessionFactory" />23     </property>24     <property name="dataSource">25       <ref bean="dataSource" />26     </property>27   </bean>28 29   <!-- 使用annotation定义事务 -->30   <tx:annotation-driven transaction-manager="transactionManager"31     proxy-target- />32 33 34   <bean id="jdbcTemplate" >35     <property name="dataSource">36       <ref bean="dataSource" />37     </property>38   </bean>39 40   <bean id="hibernateTemplate" >41     <property name="sessionFactory">42       <ref bean="sessionFactory" />43     </property>44     <property name="cacheQueries" value="false"></property>45     <!-- 设置hibernate自动刷新更新数据FLUSH_EAGER -->46     <property name="flushMode" value="2"></property>47   </bean>48 49   <bean id="hibernateTemplateCache" >50     <property name="sessionFactory">51       <ref bean="sessionFactory" />52     </property>53     <property name="cacheQueries" value="true"></property>54     <!-- 设置hibernate自动刷新更新数据FLUSH_EAGER -->55     <property name="flushMode" value="2"></property>56   </bean>57 58   <!-- 配置事务拦截器Bean -->59   <bean id="transactionInterceptor"60     >61     <!-- 为事务拦截器bean注入一个事物管理器 -->62     <property name="transactionManager" ref="transactionManager"></property>63     <property name="transactionAttributes">64       <!-- 定义事务传播属性 -->65       <props>66         <prop key="add*">PROPAGATION_REQUIRED</prop>67         <prop key="save*">PROPAGATION_REQUIRED</prop>68         <prop key="insert*">PROPAGATION_REQUIRED</prop>69 70         <prop key="remove*">PROPAGATION_REQUIRED</prop>71         <prop key="delete*">PROPAGATION_REQUIRED</prop>72 73 74       </props>75     </property>76   </bean>

View Code

  仔细看代码,用到很多通配符*的配置,所以在开发过程中类方法的命名要特别注意,有其实model类的配置文件:类名.hbm.

  顺便简单说下applicationco_service和applicationContext-dao.

  <bean id="accountManagerService" class="com.xsq.service.impl.AccountManagerServiceImpl">    <property name="accountManagerDao" ref="accountManagerDao"></property>  </bean>

   <bean id="accountManagerDao" class="com.xsq.dao.AccountManagerDao">    <property name="hibernateTemplate" ref="hibernateTemplate"></property>  </bean>

  很简单,一看就明白= =!

  •  最后,Spring框架是如何与struts2结合的呢,这里主要是将Struts的Action管理委托给SPring框架

    applicationContext-action.

   

  <bean id="announceAction" class="com.xsq.web.sysmgr.AnnounceAction" scope="prototype">    <property name="announceService" ref="announceService"></property>  </bean>

    将struts.

  至此,一个初级的SSH框架就构建好了,这里只说明了Spring框架的搭建,其他两个框架的基础配置还是要建的,在这就不细说了!