码迷,mamicode.com
首页 > 编程语言 > 详细

SSH框架中Spring框架搭建的初步理解(一)

时间:2016-04-25 22:27:45      阅读:353      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

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

  • 创建web项目,导入SSH基础jar包,在Web.xml上加入如下代码

  

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

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

  • 打开applicationContext.xml文本,为了方面后期扩展配置和管理配置,故建议以如下方式添加代码
1     <import resource="config/applicationContext.xml"/>
2 
3     <import resource="servicebean/applicationContext*.xml"/>  
4     
5     <import resource="databasebean/applicationContext*.xml"/>
6 
7     <import resource="actionbean/applicationContext*.xml"/> 

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

 Spring和Hibernate的结合。

  • _applicationContext-database.xml 配置如下:
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.xml 配置如下:
技术分享
 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.xml</value>
 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         class="org.springframework.orm.hibernate3.HibernateTransactionManager">
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-class="true" />
32 
33 
34     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
35         <property name="dataSource">
36             <ref bean="dataSource" />
37         </property>
38     </bean>
39 
40     <bean id="hibernateTemplate" class="com.xsq.core.extend.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" class="com.xsq.core.extend.HibernateTemplate">
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         class="org.springframework.transaction.interceptor.TransactionInterceptor">
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.xml。

  顺便简单说下applicationco_service和applicationContext-dao.xml的配置,如下:

    <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.xml的配置,如下:

   

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

    将struts.xml配置中的class改成bean的id名就好了~

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

SSH框架中Spring框架搭建的初步理解(一)

标签:

原文地址:http://www.cnblogs.com/Artstylech/p/5432665.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!