一、开发环境

编译器:VS2013

.Net版本:.net framework4.5

二、涉及程序集

Spring.Core.dll:1.3

Common.Logging

三、开发过程

1.项目结构

2.添加Person.cs

namespace CreateObjects
{
public class Person
{
public override string ToString()
{
return "我是Person类";
} public class Heart
{
public override string ToString()
{
return "我是Heart类";
}
}
}
}

3.添加GenericClass.cs

namespace CreateObjects
{
public class GenericClass<T>
{
}
}

4.添加StaticObjectsFactory.cs

namespace CreateObjects
{
public static class StaticObjectsFactory
{
public static Person CreateInstance()
{
return new Person();
}
}
}

5.添加InstanceObjectsFactory.cs

namespace CreateObjects
{
public class InstanceObjectsFactory
{
public Person CreateInstance()
{
return new Person();
}
}
}

6.配置Spring.Net

<?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>
<!--构造器-->
<object id="person" type="CreateObjects.Person,CreateObjects"></object>
<!--嵌套类型-->
<object id="heart" type="CreateObjects.Person+Heart,CreateObjects"></object> <!--泛型类型GenericClass<int>-->
<object id="genericClass" type="CreateObjects.GenericClass&lt;int>,CreateObjects"></object> <!--静态工厂-->
<object id="staticObjectsFactory"
type="CreateObjects.StaticObjectsFactory,CreateObjects"
factory-method="CreateInstance" ></object> <!--实例工厂-->
<!--工厂-->
<object id="instanceObjectsFactory" type="CreateObjects.InstanceObjectsFactory,CreateObjects"></object>
<!--创建的对象-->
<object id="instancePerson" factory-method="CreateInstance" factory-object="instanceObjectsFactory"></object> </objects>
</spring>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>

7.控制台程序如下

namespace CreateObjects
{
class Program
{
static void Main(string[] args)
{
IApplicationContext context = ContextRegistry.GetContext();
Person person = context.GetObject("person") as Person;
Console.WriteLine(person); Person.Heart heart = context.GetObject("heart") as Person.Heart;
Console.WriteLine(heart); GenericClass<int> genericClass = context.GetObject("genericClass") as GenericClass<int>;
Console.WriteLine(genericClass); Person personStaticFactory = context.GetObject("staticObjectsFactory") as Person;
Console.WriteLine(personStaticFactory); Person personInstanceFactory = context.GetObject("instancePerson") as Person;
Console.WriteLine(personInstanceFactory);
Console.ReadKey();
}
}
}

Spring.Net学习笔记(3)-创建对象的更多相关文章

  1. Spring框架学习笔记(1)

    Spring 框架学习笔记(1) 一.简介 Rod Johnson(spring之父) Spring是分层的Java SE/EE应用 full-stack(服务端的全栈)轻量级(跟EJB比)开源框架, ...

  2. 【转】Spring.NET学习笔记——目录

    目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...

  3. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  4. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  5. SpringBoot + Spring Security 学习笔记(三)实现图片验证码认证

    整体实现逻辑 前端在登录页面时,自动从后台获取最新的验证码图片 服务器接收获取生成验证码请求,生成验证码和对应的图片,图片响应回前端,验证码保存一份到服务器的 session 中 前端用户登录时携带当 ...

  6. spring揭密学习笔记

    spring揭密学习笔记 spring揭密学习笔记(1) --spring的由来 spring揭密学习笔记(2)-spring ioc容器:IOC的基本概念

  7. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  8. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

  9. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

随机推荐

  1. Strongly connected-HDU4635

    Problem - 4635 http://acm.hdu.edu.cn/showproblem.php?pid=4635 题目大意: n个点,m条边,求最多再加几条边,然后这个图不是强连通 分析: ...

  2. Codeforces 799E(贪心)

    题意: 有n个物品,购买物品i需要花费ci的代价.Arkady和Masha分别有喜欢的物品. 现在需要从中选m个,使得这m个物品中至少有k个Arkady喜欢的物品,k个Masha喜欢的物品. 输出满足 ...

  3. MongoDB学习day02--数据库增删改查

    (window系统,在cmd命令提示符中使用) 一.数据库使用 管理mongodb数据库:mongo,连接本地数据库,或mongo 127.0.0.1:27017,连接其他服务器:mongo  ip: ...

  4. Ubuntu 16.04安装VirtualBox 5.1实现无缝模式

    个人电脑版的虚拟机推荐使用VirtualBox,因为其免费,比起VMware到处要找破解强得多,且最重要的一点是无缝模式,让其感觉不出再用两个操作系统. 下载: wget http://downloa ...

  5. Kernel与用户进程通信

    测试IPv6 ready logo   rfc 3315的时候,遇到一个问题,要求在收到ICMPv6 RA的时候,DHCPv6  Client要发Solicit消息.在平常的应用中,都是启动DHCPv ...

  6. Open Flash Chart IO ERROR Loading test data Error #2032

    http://blog.sina.com.cn/s/blog_6754464e0100qfvd.html Open Flash Chart 2 提示Open Flash Chart IO ERROR ...

  7. golang 中可变参数的个数

    package main import "fmt" func Greeting(prefix string, who ... string) { fmt.Println(prefi ...

  8. Centos 备份 还原

    備份: tar cvpzf backup.tgz / --exclude=/backup.tgz --exclude=/mnt 記得一定要排除備份文件本身哦! 還原: tar xvpfz backup ...

  9. pageContext 获取Session 为null原因

    问题:在J2EE应用中.发如今自己定义标签中取不到session: HttpSession session = pageContext.getSession(); 你会发现session的值可能是空的 ...

  10. Android Wear - App Structure for Android Wear(应用结构)

    ---------------------------------------------------------------------------------------------------- ...