zoukankan      html  css  js  c++  java
  • Spring.Net学习笔记(4)-属性及构造器注入

    一、开发环境

    操作系统:Win10

    编译器:VS2013

    .Net版本:.net framework4.5

    二、涉及程序集

    Spring.Core.dll:1.3.1

    Common.Logging.dll

    三、开发过程

    1.项目结构

    image

    2.编写Product.cs

    namespace SpringNetDi
    {
        public class Product
        {
            public string Name { get; set; }
    
            public decimal UnitPrice { get; set; }
        }
    }

    3.编写ProductFactory.cs

    namespace SpringNetDi
    {
        public class ProductFactory
        {
            public Product FactoryProduct { get; set; }
        }
    }

    4.编写Article.cs

    namespace SpringNetDi
    {
        public class Article
        {
            private string name;
            private string writer;
    
            public Article(string name, string writer)
            {
                this.name = name;
                this.writer = writer;
            }
    
            public void GetMsg()
            {
                Console.WriteLine("你好,我是" + writer);
            }
        }
    }

    5.配置app.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <configSections>
        <sectionGroup name="spring">
          <section name="context" type="Spring.Context.Support.ContextHandler,Spring.Core"></section>
          <section name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
        </sectionGroup>
      </configSections>
    
      <spring>
        <context>
          <resource uri="config://spring/objects"></resource>
        </context>
        <objects>
          <!--01属性注入-值类型-->
          <object name =" product" type="SpringNetDi.Product,SpringNetDi">
            <property name="Name" value="记号笔"></property>
            <property name="UnitPrice" value="5"></property>
          </object>
          <!--02属性注入-引用类型-->
          <object name="factory" type="SpringNetDi.ProductFactory,SpringNetDi">
            <property name="FactoryProduct" ref="product"></property>
          </object>
          <!--03构造函数注入-->
          <object name="article" type="SpringNetDi.Article,SpringNetDi">
            <constructor-arg name="name" value="依赖注入"></constructor-arg>
            <constructor-arg name="writer" value="Kimisme"></constructor-arg>
          </object>
        </objects>
      </spring>
    
      <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
      </startup>
    </configuration>

    6.控制台代码

    namespace SpringNetDi
    {
        class Program
        {
            static void Main(string[] args)
            {
                IApplicationContext context = ContextRegistry.GetContext();
                Product product = context.GetObject("product") as Product;
                Console.WriteLine(product.Name);
    
                ProductFactory factory = context.GetObject("factory") as ProductFactory;
                Console.WriteLine(factory.FactoryProduct.Name);
    
                Article article = context.GetObject("article") as Article;
                article.GetMsg();
                Console.WriteLine("ok");
            }
        }
    }
  • 相关阅读:
    【提高测试】飘雪圣域(树状数组)
    【BZOJ2820】YY的GCD(莫比乌斯反演)
    【BZOJ2301】【HAOI2011】—Problem b(莫比乌斯反演)
    【POJ2318】—TOYS(计算几何)
    React-状态提升
    React-表单
    React-条件渲染
    React-列表 & Key
    React-HelloWorld
    MongoDB中的读写锁
  • 原文地址:https://www.cnblogs.com/kimisme/p/5339173.html
Copyright © 2011-2022 走看看