随笔-9  评论-168  文章-266  trackbacks-0

        题外话:之从有了框架后,后台的一切开发都变的不那么复杂了,应该说成是简单了.对于数据访问的开发,都是趋于接口的编程.记住,接口编程!

  (一)数据访问层开发:            (importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;)
        (1) 创建数据访问层接口.
        (2) 创建 public class 数据访问层实现类 extends HibernateDaoSupport implements 数据访问层接口.
             在实现类的方法(throw DataAccessException)中封装 getHibernateTemplate().save(user) 等Spring已封装的持久化方法.(注:如果使用Hibernate API 要用try{}catch{}自行处理导常.)

         *************************************

   (二)业务逻辑层开发:
         (1)创建业务逻辑层接口.
         (2)创建 public class 业务逻辑层实现类 implements 业务逻辑层接口.
             在实现类中. 引用的数据访问层对象实例采用DI的设值方式注入
                                   在业务逻辑方法(throw DataAccessException)中,使用数据访问层对象实例来访问数据库. 
            *************************************

    (三) Spring 配置文件
           (1)配置数据源          <bean id="dataSource" ...>
           (2)配置会话工厂     <bean id="sessionFactory" ...>
           (3)配置事务管理器  <bean id="transactionManager" ...>
           (4)配置事务代理      www.blogjava.net/algz/articles/163236.html
例:
   <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
 
<beans>
     
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
           
<property name="driverClassName">
                 
<value>com.mysql.jdbc.Driver</value>
          
</property>
          
<property name="url">
                
<value>jdbc:mysql://localhost/test</value>
           </property>
          
<property name="username">
                
<value>用户名</value>            <!-- <value />设置的值,自动转换为字符串,不用加引号.如:"用户名" X  -->
           
</property>
           
<property name="password">
                 
<value>密码</value>
            
</property>
        
</bean>
 
 
<!-- 配置sessionFactory  -->
  
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource">   <!-- 数据源 -->
               <ref local="dataSource" />
         
</property>
        
<property name="mappingResources">    <!-- ORM映射文件 -->
              
<list>
                   
<value>com/test/Hibernate/User.hbm.xml</value>
              
</list>
         
</property>
         
<property name="hibernateProperties">    <!-- Hibernate 属性 -->
               
<props>
                     
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                     
<prop key="hibernate.show_sql">true</prop>        <!--控制台显示-->
                 </props>
          
</property>
     
</bean>

         <!-- 配置事务管理器  -->
         <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
               <property name="sessionFactory">
                    <ref local="sessionFactory" />
               </property>
         </bean>
 
         <bean id="userDAO" class="com.test.数据访问层实现类">
               <property name="sessionFactory">
                     <ref local="sessionFactory" />
               </property>
         </bean>
 
         <!-- 声明式事务代理其中方法一  -->
         <bean id="userDAOProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
               <property name="transactionManager">
                     <ref bean="transactionManager" />
               </property>
               <property name="target">
                     <ref local="userDAO" />
               </property>
               <property name="transactionAttributes">
                     <props>
                           <prop key="insert*">PROPAGATION_REQUIRED</prop>
                           <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
                           <prop key="is*">PROPAGATION_REQUIRED,readOnly</prop>
                     </props>
                 </property>
           </bean>
 
          <bean name="/login" class="业务层实现类" singleton="false">
                <property name="userDAO">
                      <ref bean="userDAOProxy" />
                </property>
          </bean>
    </beans>
posted on 2008-03-18 17:39 紫蝶∏飛揚↗ 阅读(906) 评论(0)  编辑  收藏 所属分类: Spring

只有注册用户登录后才能发表评论。


网站导航: