整合asp.net mvc4,Spring.net,nhibernate实现分层开发

1,在web.config配置中添加如下配置信息,同时指定Spring.net的核心配置文件services.xml和Objects.xml。
 <configSections>
    <sectionGroup name="spring">
      <!--<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>-->
      <section name="context" type="Spring.Context.Support.MvcContextHandler, Spring.Web.Mvc4"/>
      <!--<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>-->
      <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core"/>
    </sectionGroup>
   
  </configSections>
  <spring>
    <parsers>
      <parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data"/>
      <parser type="Spring.Aop.Config.AopNamespaceParser, Spring.Aop"/>
      <parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data"/>
    </parsers>
    <context>
      <resource uri="file://~/services.xml"/>
      <resource uri="file://~/Objects.xml"/>
    </context>
  </spring>

2,services.xml配置详细信息。配置nhibernate的时候一定要注意版本这里用的是NHibernate33。<pre code_snippet_id="272651" snippet_file_name="blog_20140403_1_5010741" name="code" class="html"><?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:db="http://www.springframework.net/database"
          xmlns:tx="http://www.springframework.net/tx">
  
  <db:provider id="DbProvider"
                   provider="System.Data.SqlClient"
                   connectionString="Data Source=(local);Database=test;User ID=sa;Password=123456;Trusted_Connection=False"/>
  
  <object id="MySessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate33">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="ExposeTransactionAwareSessionFactory" value="true" />
    <property name="MappingAssemblies">
      <list>
        <value>SpringMvcDemo</value>
      </list>
    </property>
    <property name="HibernateProperties">
      <dictionary>
        <entry key="hibernate.connection.provider"
               value="NHibernate.Connection.DriverConnectionProvider"/>
        <entry key="dialect" value="NHibernate.Dialect.MsSql2008Dialect"></entry>
        <entry key="bytecode.provider" value="Spring.Data.NHibernate.Bytecode.BytecodeProvider"></entry>
        <entry key="show_sql" value="true"></entry>
        <entry key="use_outer_join" value="true"/>
        <entry key="command_timeout" value="60"/>
        <!--<entry key="hibernate.current_session_context_class"
               value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate33"/>-->
        <entry key="hibernate.current_session_context_class" value="thread-static"></entry>
      </dictionary>
    </property>
    
  </object>
  
  <object id="HibernateTemplate" type="Spring.Data.NHibernate.Generic.HibernateTemplate">
    <property name="SessionFactory" ref="MySessionFactory" />
    <property name="TemplateFlushMode" value="Auto" />
    <property name="CacheQueries" value="true" />
  </object>
  
  <object id="adoTemplate" type="Spring.Data.Core.AdoTemplate, Spring.Data">
    <property name="DbProvider" ref="DbProvider"/>
  </object>
  
  <object id="transactionManager"
        type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate33">
    <property name="DbProvider" ref="DbProvider"/>
    <property name="SessionFactory" ref="MySessionFactory"/>
  </object>
  
  <!--<object id="transactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">
    <property name="TransactionManager" ref="transactionManager"/>
    <property name="TransactionAttributeSource">
      <object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data"/>
    </property>
  </object>-->
  
  <!--<object id="BaseTransactionManager"  type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject, Spring.Data" abstract="true">
    <property name="PlatformTransactionManager" ref="transactionManager"/>
    <property name="TransactionAttributes">
      <name-values>
        -->
  <!--增加--><!--
        <add key="Save*" value="PROPAGATION_REQUIRED"/>
        --><!--修改--><!--
        <add key="Update*" value="PROPAGATION_REQUIRED"/>
        --><!--删除--><!--
        <add key="Delete*" value="PROPAGATION_REQUIRED"/>
        --><!--获取--><!--
        <add key="Get*" value="PROPAGATION_REQUIRED"/>
        --><!--浏览--><!--
        <add key="Find*" value="PROPAGATION_SUPPORTS,readOnly"/>
        --><!--检索--><!--
        <add key="Search*" value="PROPAGATION_SUPPORTS,readOnly"/>
        --><!--报表--><!--
        <add key="Query*" value="PROPAGATION_SUPPORTS,readOnly"/>
        --><!--载入--><!--
        <add key="Load*" value="PROPAGATION_SUPPORTS,readOnly"/>
        --><!--报表--><!--
        <add key="Report*" value="PROPAGATION_SUPPORTS,readOnly"/>
        --><!--其它--><!--
        <add key="*" value="PROPAGATION_REQUIRED"/>
      </name-values>
    </property>
  </object>-->
  <object type="Spring.Dao.Attributes.PersistenceExceptionTranslationPostProcessor, Spring.Data"/>
  
  <!--<import resource="~/Objects.xml"/>-->
</objects>

3,Objects.xml详细配置信息 
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
         xmlns:tx="http://www.springframework.net/tx">
  
  <object id="personDao" type="SpringMvcDemo.Models.Daos.PersonDao,SpringMvcDemo">
    <property name="hibernateTemplate" ref="HibernateTemplate"></property>
  </object>

  <object id="SessionTestDao" type="SpringMvcDemo.Models.Daos.SessionTestDao,SpringMvcDemo">
    <property name="iSessionFactory" ref="MySessionFactory"></property>
  </object>

  <object id="baseDao" type="SpringMvcDemo.Models.Daos.BaseDao,SpringMvcDemo">
    <property name="hibernateTemplate" ref="HibernateTemplate"></property>
  </object>

  <object id="aDOTemplateDao" type="SpringMvcDemo.Models.Daos.ADOTemplateDao,SpringMvcDemo">
    <property name="adoTemplate" ref="adoTemplate"></property>
  </object>
  <object id="adoQueryDao" type="SpringMvcDemo.Models.Daos.AdoQueryDao,SpringMvcDemo">
    <constructor-arg name="dbProvider" ref="DbProvider"></constructor-arg>
  </object>
  <!-- =========================================================================================== -->
  
  <object id="showInfoService" type="SpringMvcDemo.Services.ShowInfoService,SpringMvcDemo">
    <property name="sessionTestDao" ref="SessionTestDao"></property>
    <!--<property name="baseDao" ref="baseDao"></property>-->
  </object>
  
  <object id="personService" type="SpringMvcDemo.Services.PersonService,SpringMvcDemo">
    <property name="personDao" ref="personDao"></property>
  </object>

  <object id="ADOService" type="SpringMvcDemo.Services.ADOService,SpringMvcDemo">
    <property name="aDOTemplateDao" ref="aDOTemplateDao"></property>
    <property name="adoQueryDao" ref="adoQueryDao"></property>
  </object>
  <!-- =========================================================================================== -->
  <object id="homeController" type="SpringMvcDemo.Controllers.HomeController,SpringMvcDemo" singleton="false">
    <property name="showInfoService" ref="showInfoService"></property>
    <property name="personService" ref="personService"></property>
    <property name="aDOService" ref="ADOService"></property>
  </object>

</objects>
4,映射配置文件详细
<pre code_snippet_id="272651" snippet_file_name="blog_20140403_2_2088565" name="code" class="html"><?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
	 namespace="SpringMvcDemo.Models.Beans" assembly="SpringMvcDemo">

  <class name="Person" table="Person">
    <id name="ID" column="ID">
      <generator class="identity" ></generator>
    </id>
    <property name="userid" column="userid"></property>
    <property name="username" column="username"></property>
    <property name="usersex" column="UserSex"></property>
    <property name="userstate" column="UserState"></property>
  </class> 
  
</hibernate-mapping>


 
 

 

                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值