Spring.Net学习笔记(5)-集合注入

一、开发环境

系统:Win10

编译器:VS2013

.net版本:.net framework4.5

二、涉及程序集

Spring.Core.dll 1.3.1

Common.Loggin.dll

三、开发过程

1.项目结构

2.编写Person.cs

namespace SpringNetSetDi
{
    public class Person
    {
        public string RealName { get; set; }
        public string NickName { get; set; }
        public string LoginName { get; set; }
        public string ShowName { get; set; }
    }
}

3.编写Animal.cs

namespace SpringNetSetDi
{
    public class Animal
    {
        public string Name { get; set; }
        public IList TypeList { get; set; }
    }
}

4.编写Zoo.cs

namespace SpringNetSetDi
{
    public class Zoo
    {
        public List<Animal> AnimalList { get; set; }
    }
}

6.配置文件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 name="objects" type="Spring.Context.Support.DefaultSectionHandler,Spring.Core"/>
    </sectionGroup>
  </configSections>

  <spring>
    <context>
      <resource uri="config://spring/objects"></resource>
    </context>
    <objects  xmlns="http://www.springframework.net">
      <!--01设置空值-->
      <object name="person" type="SpringNetSetDi.Person,SpringNetSetDi">
        <property name="ShowName" value="Kimisme"></property>
        <property name="RealName" value=""></property>
        <property name="NickName">
          <value></value>
        </property>
        <property name="LoginName">
          <null/>
        </property>
      </object>
      <!--02IList类型注入-->
      <object name="animal" type="SpringNetSetDi.Animal,SpringNetSetDi">
        <property name="TypeList">
          <list element-type="string">
            <value>哺乳类</value>
            <value>鸟类</value>
            <value>爬行类</value>
            <value>昆虫类</value>
            <value>两栖类</value>
          </list>
        </property>
      </object>
      <!--03泛型List注入-->
      <object name="zoo" type="SpringNetSetDi.Zoo,SpringNetSetDi">
        <property name="AnimalList">
          <list element-type="SpringNetSetDI.Animal,SpringNetSetDi">
            <object type="SpringNetSetDi.Animal,SpringNetSetDi">
              <property name="Name" value="Eagle"></property>
              <property name="TypeList">
                <list element-type="string">
                  <value>鸟类</value>
                </list>
              </property>
            </object>
          </list>
        </property>
      </object>
    </objects>
  </spring>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>

7.控制台代码

namespace SpringNetSetDi
{
    class Program
    {
        static void Main(string[] args)
        {
            IApplicationContext context = ContextRegistry.GetContext();
            Person person = context.GetObject("person") as Person;

            Animal animal = context.GetObject("animal") as Animal;

            Zoo zoo = context.GetObject("zoo") as Zoo;
            Console.ReadKey();
        }
    }
}

四、说明

这边有个坑,花了我好长时间,具体解决看 问题汇总

时间: 2024-12-18 10:37:58

Spring.Net学习笔记(5)-集合注入的相关文章

Spring.Net学习笔记七(集合类型的注入)

Spring.NET还支持集合类型的注入.而且使用起来也比较方便. 一.ILIst类型 使用<list>元素作为ILIst的标签,value为集合中元素的值.也可以注入对象,甚至关联其它对象,使用 <ref/>元素表示关联的对象,object 属性为所关联对象的id或name.集合可以为空,用<null/>元素来标记. 在<list>元素中设置 element-type 属性表示泛型T的类型,例如 element-type="int"  

Spring.Net学习笔记五(依赖注入)

谈到高级语言编程,我们就会联想到设计模式:谈到设计模式,我们就会说道怎么样解耦合.而Spring.NET的IoC容器其中的一种用途就是解耦合,其最经典的应用就是:依赖注入(Dependeny Injection)简称DI,目前DI是最优秀的解耦方式之一.下面我就来谈谈依赖注入的应用场景. 我模拟了三种不同的场景,可以一起学习使用依赖注入的重要性. 下面是应用场景的条件:人类使用工具劳动.      /**//// <summary> /// 抽象人类 /// </summary>

Spring.Net学习笔记(2)-依赖注入

一.开发环境 操作系统:Win10 编译器:VS2013 framework版本:.net 4.5 Spring版本:1.3.1 二.涉及程序集 Spring.Core.dll Common.Loggin.dll 三.项目结构 四.开发过程 1.新建一个接口文件 namespace SpringNetIoc.IScene { public interface IBall { void DoSport(); } } 2.新建两个实现接口IBall的具体类 namespace SpringNetIo

Spring.Net学习笔记(6)-方法注入

一.开发环境 系统:win10 编译器:VS2013 二.涉及程序集 Spring.Core.dll 1.3.1 Common.Logging.dll 三.开发过程 1.项目结构 2.编写Mobile.cs namespace SpringNetMethodDi { public abstract class Mobile { //可以是virtual public abstract SendTool GetSendTool(); } } 3.编写SendTool.cs namespace Sp

Spring Batch学习笔记二

此系列博客皆为学习Spring Batch时的一些笔记: Spring Batch的架构 一个Batch Job是指一系列有序的Step的集合,它们作为预定义流程的一部分而被执行: Step代表一个自定义的工作单元,它是Job的主要构件块:每一个Step由三部分组成:ItemReader.ItemProcessor.ItemWriter:这三个部分将执行在每一条被处理的记录上,ItemReader读取每一条记录,然后传递给ItemProcessor处理,最后交给ItemWriter做持久化:It

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

[Spring MVC]学习笔记--DispatcherServlet

在上一篇我们介绍了Servlet,这一篇主要来看一下MVC中用到的DispatcherServlet(继承自HttpServlet). 1. DispatcherServlet在web.xml中被声明. <web-app> <servlet> <servlet-name>example</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet&l

Guava学习笔记: guava集合之Multiset

Guava学习笔记: guava集合之Multiset Multiset是什么? Multiset看似是一个Set,但是实质上它不是一个Set,它没有继承Set接口,它继承的是Collection<E>接口,你可以向Multiset中添加重复的元素,Multiset会对添加的元素做一个计数. 它本质上是一个Set加一个元素计数器. Multiset使用示例: package cn.outofmemory.guava.collection; import com.google.common.ba

Spring MVC学习笔记(一)--------准备篇

这一系列笔记将带你一步一步的进入Spring MVC,高手勿喷. 首先你得安装以下的工具: JDK,虽然JDK8已经发布了一段时间了,但是由于我们并不会使用到里面的新特性,所以JDK6以上版本皆可以(需加入到PATH环境变量中): Servlet Container,为了能运行WEB应用程序,因此需要一个Web Container,这里我们建议Tomcat即可: IDE,一个好的IDE不仅能提高你开发的效率,还能降低你学习的成本,我们选择的是IntelliJ: 构建工具,推荐使用Gradle,它