Unity + iBatis + Asp.net Mvc 系統搭建

來源:互聯網
上載者:User

標籤:

之前用EntityFramework Code First做了一些小項目,很是方便;後來在一個 Java 項目中接觸了myBatis之後,深深的喜歡上了這種最直接最原始最靈活的資料庫操作,所以最終決定改造之前的項目,使用IBatis訪問資料庫;

一、架構搭建

1)建立一個Asp.net Mvc的應用,.Net使用4.5

2)使用 Nuget 安裝 Unity 3.5,因為比較熟悉 Unity;

3)使用 Nuget 安裝 Unity Bootstrapper for ASP.NET MVC

4)使用 Nuget 安裝 Common Service Locator

5)安裝 IBatisNet,版本有點老了,不過還是能穩定工作,先用著吧;

前台,jquery,bootstrap 等

二、配置

1)配置  IBatis

  a)web.config 中配置 log 資訊

  b)provider.config,以及 sqlmap.config 檔案,放到了 ~/App_Data下

2)配置 Unity

  a)採用設定檔進行配置:

  首先到解決方案下,找到 Packages/Unity.xx.xx.xx 下的 UnityConfiguration30.xsd,拷貝到VisualStudio 的 xml/schema目錄下,這樣編輯設定檔就有文法提示了;

  在 ~/App_Data目錄下,建立一個 unity.config 檔案,內容如下:

<?xml version="1.0" encoding="utf-8" ?><configuration>  <configSections>    <section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration"/>  </configSections>  <unity xmlns="http://schemas.microsoft.com/practices/2010/unity">    <!-- assemblies 加入程式集 -->    <assembly name="Mwms.Framework"/>    <assembly name="Microsoft.Practices.Unity.Mvc"/>    <assembly name="System.Web.Mvc"/>        <!-- namespaces 加入命名空間,這樣就可以直接使用其中的類型了 -->    <namespace name="Mwms.Framework" />    <namespace name="Mwms.Framework.Interfaces" />    <namespace name="Mwms.Framework.Repository" />          <namespace name="System.Web.Mvc"/>
  <!-- 配置一個生命週期管理器 --> <alias alias="PerRequestLifeTimeManager" type="Microsoft.Practices.Unity.PerRequestLifetimeManager, Microsoft.Practices.Unity.Mvc"/> <container> <!-- 封裝 IBatis 的 SQLMapper,自行實現, --> <register type="SqlMapperWrapper" mapTo="SqlMapperWrapper"> <lifetime type="PerRequestLifeTimeManager" /> <constructor> <param name="configPath" value="~/App_Data/SqlMap.config" /> </constructor> </register> <!--<register type="IMwLogger" mapTo="DebugLogger" /> <register type="IMwCacher" mapTo="DefaultNetCacher" />--> <!-- Repositories 配置一個泛型倉儲實現映射 --> <register type="IRepository`1" mapTo="IBatisRepository`1" />  
    <!-- 加入更多類型映射 --> </container> </unity></configuration>

  b)載入UnityContainer 配置:

  修改 ~/App_Start 目錄下 UnityConfig.cs , 修改 RegisterTypes 方法,載入對應的設定檔;      

public static void RegisterTypes(IUnityContainer containerObject)        {            // NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements.            // container.LoadConfiguration();            // TODO: Register your types here            // container.RegisterType<IProductRepository, ProductRepository>();            var path = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "App_data", "unity.config");            var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = path };            var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);            var unitySection = (UnityConfigurationSection)configuration.GetSection("unity");            containerObject.LoadConfiguration(unitySection);        }

  c)SqlMap 設定檔中,載入相應的Mapper檔案……

  其他的,就是IBatis的標準開發流程,實體類,xml設定檔,倉儲類,服務介面,服務實現等;

做完之後,就可以直接使用建構函式注入,在 Controller中使用代碼訪問資料庫了,直接用SQL也可以完成很多邏輯

 

Unity + iBatis + Asp.net Mvc 系統搭建

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.