【ITOO】——Spring.net基础及简单使用


    概述

    通过Spring.NET,我们可以用统一且透明的方式来配置应用程序。Spring.NET的重点是为中间层提供声明式事务管理,以及一个功能齐全的ASP.NET扩展框架。

    Spring.NET是非侵入式的,代码对框架本身不会产生任何依赖。它能够提供很多方面的功能,例如控制反转(Inversion of Control,英文缩写为IoC)、依赖注入(Dependency Injection,英文缩写DI)、面向方面编程(AOP)、数据访问抽象, 以及ASP DOTNET集成等。


    关键词

    IOC(控制反转,Inversion of Control)

    就是创建对象的权利由开发人员自己控制New,转到了由容器来控制;

    DI(依赖注入,Dependency Injection)

    就是在通过容器来创建对象的时候,在对象的初始化是可以给一些属性、构造方法的参数等诸如默认值(可以是复杂的类型)

    AOP——权限校验——日志处理。


    实例说明

    如下是小demo中的配置文件部分:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
    </sectionGroup>
  </configSections>
  <spring>
    <context>
      <resource uri="config://spring/objects"/>
      
      <!--关联自己添加的services.xml文件,所使用资源来自services.xml-->
      <!--services.xml文件属性设置为“始终复制”,每次运行都把services.xml复制到debug-->
      <resource uri="file://services.xml"/>

    </context>
    <objects xmlns="http://www.springframework.net">
      <!--description>An  example that demonstrates simple IoC features.</description>
        <object name="UserInfoService"      type="CZBK_ItcastOA.SpringNet.UserInfoService, CZBK ItcastOA.SpringNet">
          --><!-- 为UserInfoService添加属性设置 --><!--
          <property name="UserName" value="zhangsan"/>
          --><!--value为属性值,ref关联object,Person类--><!--
          <property name="Person" ref="Person"/>
      </object>
      <object name="Person"        type="CZBK_ItcastOA.SpringNet.Person, CZBK ItcastOA.SpringNet">
        <property name="Age" value="16"/>
      </object>-->
    </objects>
  </spring>
</configuration>

    为了能够实践Spring.net,我们可以添加一个XML文件,将配置文件中的objects节点中的内容全部复制到新添加的XML文件中,对应到以上代码,小编先添加了一个services.xml文件,以下是services中的所有内容:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
  <description>An  example that demonstrates simple IoC features.</description>
  <object name="UserInfoService"      type="CZBK_ItcastOA.SpringNet.UserInfoService, CZBK ItcastOA.SpringNet">
    <!-- 为UserInfoService添加属性设置 -->
    <property name="UserName" value="zhangsan"/>
    <!--value为属性值,ref关联object,Person类-->
    <property name="Person" ref="Person"/>
  </object>
  <object name="Person"        type="CZBK_ItcastOA.SpringNet.Person, CZBK ItcastOA.SpringNet">
    <property name="Age" value="16"/>
  </object>
</objects>

    当然原配置文件中的objects节点要保留,只是节点中的所有内容可以提取出到services中。

    另外还要在原配置文件中添加关联,获取service中的资源:

<resource uri="file://services.xml"/>

    遇上步骤完成之后,还有一个地方需要修改,就是将services.xml的文件属性设置为“始终复制”,这样一来,程序运行就不会出现找不到文件的问题了!


    为什么要把objects中的内容抽出来呢?这不用说大家也明白。大项目的开发总是会有多人参与的,动用代码那是必然的,但配置文件只有一个的情况下,如果objects写在配置文件中,那要么会造成不必要的冲突,要么就会耽误开发进度。但如果把objects提出来,并按照需求添加多个XML,各个模块各自动用各自的xml文件,这样一来,一系列棘手的问题就解决啦。



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值