spring 属性注入

Spring的核心技术室依赖注入,下面是依赖注入之属性注入的实现过程,牛刀小试,请看效果。

1、首先添加Spring.Web引用。本例中是使用分层思想来演示的,下面是项目的结构和UserModel类的内容,为了简单操作,只有一个Name属性

2、修改Web.Config文件,配置注入环境

    <configSections>
        <sectionGroup name="spring">
      <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
      <!-- 支持在 web.config 中定义对象 -->
      <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
        </sectionGroup>
    </configSections>
添加Spring的SectionGroup
 <system.web>
    <compilation debug="true" targetFramework="4.0"/>
    <httpModules>
      <!-- Spring 提供的 Module  -->
      <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
    </httpModules>
添加HttpModule配置
 <httpHandlers>
      <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
      <!-- 取消 Spring.NET 对于 Web 服务的处理 -->
      <!--<add verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web"/>-->
      <add verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
      <add verb="*" path="*.ashx" type="Spring.Web.Support.DefaultHandlerFactory, Spring.Web"/>
    </httpHandlers>
添加HttpHandler配置
    </configSections>
    <spring>
        <context>
      <!---外部文件注入-->
      <!--<resource uri="Configration.xml"/>-->
      <!--<resource uri="config://spring/objects"/>-->
    </context>

    <objects>
      <!--id为自定义的id和下面要注入的页面property节点下的framework要保持一致,type为要注入的属性的所在类 -->
      <object id="framework" type="Spring.Model.UserModel,Spring.Model">
        <!--name为注入的属性,value为属性的值-->
        <property name="Name" value="Spring.NET"/>
      </object>
      
      <!--页面注入-->
      <object type="~/Default.aspx">
        <property name="UserModel" ref="framework"></property>
      </object>
    </objects>
    </spring>
依赖注入配置

3、实现注入

    /// <summary>
        /// 定义注入点
        /// </summary>
        public UserModel UserModel { set; get; }

        protected void Page_Load(object sender, EventArgs e)
        {
            if (this.UserModel != null)
            {
                Label1.Text = this.UserModel.Name;
            }
        }
实现注入

4、效果图

原文地址:https://www.cnblogs.com/AlphaThink-AT003/p/3180758.html