ASP.NET MVC4 NHibernate and Sping Framework配置

来源:互联网 发布:mac win10 鼠标滚轮 编辑:程序博客网 时间:2024/06/05 03:20

Web页面引用:
Common.Logging 2.0.0.0
Common.Logging.Log4Net 2.0.0.0
Iesi.Collections 1.0.1.0   (DAO)
log4net 1.2.10.0
NHibernate 3.2.0.4000   (DAO)
Spring.Aop 1.3.2.40943   (DAO)
Spring.Core 1.3.2.40943   (DAO)
Spring.Data 1.3.2.40943   (DAO)
Spring.Data.NHibernate32 1.3.2.40943   (DAO)
Spring.Web.Mvc 1.3.2.40943
Spring.Web 1.3.2.40943
DotNetOpenAuth版本都要4.0.0.0

数据库语句
create table Man(Id int primary key identity(1, 1),Name varchar(20),Age int)
Business.xml:配置BLL层

<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database"> <object id="UserBLL" type="BLL.UserBLL,BLL"> <property name="UserDAO" ref="UserDAO" /> </object></objects>

DAO.xml:配置DAO层

<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database"> <object id="UserDAO" type="DAO.UserDAO,DAO"> <property name="SessionFactory" ref="SessionFactory" /> </object></objects>

User.hbm.xml:Model映射文件

<?xml version="1.0" encoding="utf-8" ?><hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly ="Model" namespace="Model"> <class name="Model.User,Model" table="Man" lazy="false"> <id name="Id" column="Id" type="Int32"> <generator class="native" /> </id> <property name="Name" column="Name" type="String" length="20" /> <property name="Age" column="Age" type="Int32" /> </class></hibernate-mapping>

Controls.xml:配置控制器层

<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database"> <object id="HomeController" type="Web.Controllers.HomeController,Web" singleton="false"> <property name="UserBLL" ref="UserBLL" /> </object></objects>

CommonDAO.xml

<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net" xmlns:db="http://www.springframework.net/database"> <description> Definitions for the NHibernate Objects. </description> <!-- 数据访问对象替换位置 --> <object type="Spring.Objects.Factory.Config.PropertyPlaceholderConfigurer, Spring.Core"> <property name="ConfigSections" value="databaseSettings"/> </object> <!-- Database and NHibernate Configuration 配置使用Nhibernate --> <db:provider id="DbProvider" provider="${db.provider}" connectionString="${db.connectionString}"/> <!--provider="SqlServer-2.0" connectionString="database=BookDB;uid=sa;pwd=123456;server=.;"--> <object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate32"> <property name="DbProvider" ref="DbProvider" /> <property name="MappingAssemblies"> <list> <!--这是配置嵌入资源 对应的xx.hbm.xml文件所在的项目名称--> <value>${nhibernate.domain}</value> </list> </property> <property name="HibernateProperties"> <dictionary> <entry key="hibernate.current_session_context_class" value="Spring.Data.NHibernate.SpringSessionContext, Spring.Data.NHibernate32"/> <!-- session管道 --> <entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/> <!--数据库方言--> <entry key="dialect" value="${nhibernate.dialect}"/> <!--数据库驱动--> <entry key="connection.driver_class" value="${nhibernate.driverclass}"/> <!-- 外连接 --> <entry key="use_outer_join" value="true"/> <!-- 是否显示SQL语句 --> <entry key="show_sql" value="${nhibernate.show_sql}"/> </dictionary> </property> </object> <object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate32"> <property name="DbProvider" ref="DbProvider" /> <property name="sessionFactory" ref="SessionFactory" /> </object> <object id="TransactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data"> <property name="TransactionManager" ref="HibernateTransactionManager" /> <property name="TransactionAttributeSource"> <object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data" /> </property> </object></objects>

Web.config

<?xml version="1.0" encoding="utf-8"?><!-- 有关如何配置 ASP.NET 应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --><configuration> <configSections> <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 --> <!--zlh<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />--> <!--<sectionGroup name="common"> <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> </sectionGroup>--> <sectionGroup name="spring"> <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web" /> <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" /> </sectionGroup> <section name="databaseSettings" type="System.Configuration.NameValueSectionHandler" /> </configSections> <!--<common> <logging> <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net"> --><!-- choices are INLINE, FILE, FILE-WATCH, EXTERNAL--><!-- --><!-- otherwise BasicConfigurer.Configure is used --><!-- --><!-- log4net configuration file is specified with key configFile--><!-- <arg key="configType" value="FILE-WATCH" /> <arg key="configFile" value="~/Configs/Log4Net.config" /> </factoryAdapter> </logging> </common>--> <spring> <parsers> <parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" /> <parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" /> </parsers> <context> <!-- <resource uri="~/Config/Aspects.xml" /> <resource uri="assembly://Spring.Northwind.Dao.NHibernate/Spring.Northwind.Dao/Dao.xml" /> <resource uri="assembly://Spring.Northwind.Service/Spring.Northwind.Service/Services.xml" /> <resource uri="~/Web.xml" /> --> <resource uri="~/Configs/CommonDAO.xml" /> <resource uri="~/Configs/DAO.xml" /> <resource uri="~/Configs/Business.xml" /> <resource uri="~/Configs/Controls.xml" /> </context> </spring> <!-- These properties are referenced in Dao.xml --> <databaseSettings> <add key="db.provider" value="System.Data.SqlClient" /> <add key="db.connectionString" value="Data Source=.;Database=MyWeb;User ID=sa;Password=123456;Trusted_Connection=False;Pooling=true;Min Pool Size=10;Max Pool Size=30000;Connection Lifetime=30;Connection Timeout=30;"/> <add key="nhibernate.dialect" value="NHibernate.Dialect.MsSql2008Dialect" /> <add key="nhibernate.driverclass" value="NHibernate.Driver.SqlClientDriver" /> <add key="nhibernate.show_sql" value="true" /> <add key="nhibernate.domain" value="Model" /> <add key="nhibernate.format_sql" value="true" /> <add key="nhibernate.adonet.batch_size" value="200" /> </databaseSettings> <!--zlh<connectionStrings> <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-Test.Web-20140715133133;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-Test.Web-20140715133133.mdf" providerName="System.Data.SqlClient" /> </connectionStrings>--> <appSettings> <add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="SessionFactory" /> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="false" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> <connectionStrings /> <system.web> <httpModules> <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web" /> <add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate32" /> </httpModules> <httpHandlers> <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web" /> <add verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web" /> </httpHandlers> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> <authentication mode="Forms"> <forms loginUrl="~/Account/Login" timeout="2880" /> </authentication> <pages> <namespaces> <add namespace="System.Web.Helpers" /> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization" /> <add namespace="System.Web.Routing" /> <add namespace="System.Web.WebPages" /> </namespaces> </pages> </system.web> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules> <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web" /> <add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate32" /> </modules> <handlers> <add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web" /> <add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" /> <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" /> <remove name="ExtensionlessUrlHandler-Integrated-4.0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" /> <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Common.Logging" publicKeyToken="af08829b84f0328e" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> <!--zlh<entityFramework> <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework"> <parameters> <parameter value="v11.0" /> </parameters> </defaultConnectionFactory> </entityFramework>--></configuration>

别忘了给xml文件的属性设置为“嵌入的资源”。
控制器里要写上用到的IBLL层对象的申请。
BLL层要写上用到的IDAO层对象的申请。
对于web.config里的配置明天具体写。
0 0