spring.net框架配置和使用


          spring.net框架學習筆記

spring.net框架是用於解決企業應用開發的復雜性的一種容器框架,它的一大功能IOC(控制反轉),通俗解釋就是通過spring.net框架的容器創建對象實體,而不是通過程序員new出來。只要在spring.net的相應xml中配置節點,在獲取對象的時候就可以通過 

IApplicationContext ctx = ContextRegistry.GetContext();

UserInfoDal dal = ctx.GetObject("UserInfoDal") as UserInfoDal;

來創建實體對象,這樣就可以在XML里通過配置修改或者替換UserInfoDal類,降低程序對服務類的依賴性,符合軟件設計中的OCP(開閉原則),提高軟件的可擴展性。IOC也叫DI(依賴注入),這兩種不同的叫法可以這樣理解,在應用程序整體中理解為控制反轉(控制權交由應用程序),在容器對對象實例化的角度叫做DI(依賴對象通過xml配置文件讓外部容器將其注入到程序中)。

1.引用相應dll文件Common.Logging.dll和Spring.Core.dll

2.使用Spring.net需要配置應用程序的配置文件:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <configuration>
 3 
 4   <configSections>
 5 
 6     <!--Spring配置節點-->
 7     <sectionGroup name="spring">
 8       <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
 9       <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
10     </sectionGroup>
11     <!--Spring配置節點結束-->
12 
13   </configSections>
14 
15 
16   <!--Spring配置節點-->
17   <spring>
18 
19     <context>
20       <!--選擇XML文件的位置,3種方式,1 配置文件 2 定位文件 3 程序集-->
21       <resource uri="config://spring/objects"/>
22       <!-- <resource uri="file://objects.xml"/>-->
23       <!--<resource uri="assembly://SpringNetTest/SpringNetTest/objects1.xml"/>-->
24     </context>
25     <objects xmlns="http://www.springframework.net">
26 
27       <!--此處配置各種要注入的實體對象-->
28       <object name="OrderInfo" type="SpringNetTest.OrderInfo,SpringNetTest">
29         <property name="Id" value="1"/>
30         <property name="Good" value="食品"/>
31       </object>
32       <!--autowire="constructor"根據構造函數注入 au-->
33       <object name="UserInfoDal" type="SpringNetTest.UserInfoDal,SpringNetTest" autowire="byType">
34         <constructor-arg name="Id" value="2"/>
35         <!--<constructor-arg name="OrderInfo" ref="OrderInfo"/>-->
36       </object>
37       <object name="UserInfo" type="SpringNetTest.UserInfo,SpringNetTest">
38         <property name="Id" value="1"/>
39         <property name="Name" value="jayjay"/>
40         <property name="OrderInfo" ref="OrderInfo"/>
41       </object>
42     </objects>
43 
44   </spring>
45   <!--Spring配置節點結束-->
46 
47 </configuration>
ps:<object name="對象名" type="命名空間名稱.類名,程序集名">

3.通過

IApplicationContext ctx = ContextRegistry.GetContext();

UserInfoDal dal = ctx.GetObject("UserInfoDal") as UserInfoDal;

創建容器上下文對象,接着創建服務類實體對象,對象即可與手動new出來一樣正常使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM