您的位置:首页 > 编程语言 > ASP

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

2014-04-03 16:19 525 查看
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>







                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息