Spring.NET学习笔记8——集合类型的注入(基础篇)
1.基础类
public class Happy {
public override string ToString()
{
return "每天都开心,每天都有好心情";
}
}
public class OneYear
{
public override string ToString()
{
return "快乐的一年";
}
}
public class Person
{
//下面都是预注入的属性 public IList<Person> BestFriends { get; set; }
public IList HappyYears { get; set; }
public IList<int> Years { get; set; }
public IDictionary HappyDic { get; set; }
public IDictionary<string,object> HappyTimes { get; set; }
}
2.配置文件
<?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" />
</context>
<objects xmlns="http://www.springframework.net">
<object id="person" type="SpringNetDi.Person, SpringNetDi">
<!--空集合属性-->
<property name="BestFriends">
<null/>
</property>
<!--System.Collections.IList注入 -->
<property name="HappyYears">
<list>
<value>1992</value>
<value>1998 年</value>
<ref object="oneYear"/>
</list>
</property>
<!--System.Collections.IList<int>注入 -->
<property name="Years">
<list element-type="int">
<value>1992</value>
<value>1998</value>
<value>2000</value>
</list>
</property>
<!--System.Collections.IDictionary注入-->
<property name="HappyDic">
<dictionary key-type="string" value-type="object">
<entry key="第一开心" value="每天都能睡一个好觉"/>
<entry key="第二开心" value-ref="happy"/>
</dictionary>
</property>
<!--System.Collections.IDictionary<object,object>注入-->
<property name="HappyTimes">
<dictionary key-type="string" value-type="object">
<entry key="第一开心" value="每天都能睡一个好觉"/>
<entry key="第二开心" value-ref="happy"/>
</dictionary>
</property>
</object>
<object id="oneYear" type="SpringNetDi.OneYear,SpringNetDi"/>
<object id="happy" type="SpringNetDi.Happy,SpringNetDi"/>
</objects>
</spring>
</configuration>
3.调用
class Program {
static void Main(string[] args)
{
IApplicationContext ctx = ContextRegistry.GetContext();
Person person = ctx.GetObject("person") as Person;
Console.WriteLine("空值");
string bestFriend = person.BestFriends == null ? "我的朋友太多了" : "我只有一个好朋友";
Console.WriteLine(bestFriend);
Console.WriteLine();
Console.WriteLine("IList");
foreach (var item in person.HappyYears)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("泛型Ilist<int>");
foreach (int item in person.Years)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("IDictionary");
foreach (DictionaryEntry item in person.HappyDic)
{
Console.WriteLine(item.Key + " 是 " + item.Value);
}
Console.WriteLine();
Console.WriteLine("泛型IDictionary<string,object>");
foreach (KeyValuePair<string,object> item in person.HappyTimes)
{
Console.WriteLine(item.Key + " 是 " + item.Value);
}
Console.ReadLine();
}
}
4.结果
Spring.NET学习笔记8——集合类型的注入(基础篇)的更多相关文章
- Spring.NET学习笔记7——依赖对象的注入(基础篇) Level 200
1.person类 public class Person { public string Name { get; set; } public int Age { g ...
- 【Spring实战】—— 7 复杂集合类型的注入
之前讲解了Spring的基本类型和bean引用的注入,接下来学习一下复杂集合类型的注入,例如:List.Set.Map等. 对于程序员来说,掌握多种语言是基本的技能. 我们这里做了一个小例子,程序员们 ...
- Spring.Net学习笔记(5)-集合注入
一.开发环境 系统:Win10 编译器:VS2013 .net版本:.net framework4.5 二.涉及程序集 Spring.Core.dll 1.3.1 Common.Loggin.dll ...
- Spring.Net学习笔记(4)-属性及构造器注入
一.开发环境 操作系统:Win10 编译器:VS2013 .Net版本:.net framework4.5 二.涉及程序集 Spring.Core.dll:1.3.1 Common.Logging.d ...
- python学习笔记六 初识面向对象上(基础篇)
python面向对象 面向对象编程(Object-Oriented Programming )介绍 对于编程语言的初学者来讲,OOP不是一个很容易理解的编程方式,虽然大家都知道OOP的三大特性 ...
- 【转】Spring.NET学习笔记——目录
目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...
- Spring.NET学习笔记——目录(原)
目录 前言 Spring.NET学习笔记——前言 第一阶段:控制反转与依赖注入IoC&DI Spring.NET学习笔记1——控制反转(基础篇) Level 200 Spring.NET学习笔 ...
- Spring Boot 学习笔记(六) 整合 RESTful 参数传递
Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...
- SpringBoot + Spring Security 学习笔记(三)实现图片验证码认证
整体实现逻辑 前端在登录页面时,自动从后台获取最新的验证码图片 服务器接收获取生成验证码请求,生成验证码和对应的图片,图片响应回前端,验证码保存一份到服务器的 session 中 前端用户登录时携带当 ...
随机推荐
- 异步与websocket
异步与WebSockets 知识点 理解同步与异步执行过程 理解异步代码的回调写法与yield写法 Tornado异步 异步Web客户端AsyncHTTPClient tornado.web.asyn ...
- python2.7实现websocket服务器,可以在web实时显示远程服务器日志
一.开始的话 使用python实现websocket服务器,可以在浏览器上实时显示远程服务器的日志. 之前写了一个发布系统,每次发布版本后,为了了解发布情况(进度.是否有错误)都会登录到服务器上查看日 ...
- OpenCL 存储器次序的验证
▶ <OpenCL异构并行编程实战>P224 的代码,先放上来,坐等新设备到了再执行 //kernel.cl __global ); // 全局原子对象 __kernel void mem ...
- 网络性能测试工具iperf
参考网站:https://www.cnblogs.com/yingsong/p/5682080.html https://docs.azure.cn/zh-cn/articles/azure-oper ...
- Java的Guava
主要是看代码看到了Table这个类,竟然有两个键! http://www.cnblogs.com/peida/p/3183505.html
- spring 注解 @NotBlank and BingResult
@NotEmpty用在集合类上面 @NotBlank 用在String上面 @NotNull 用在基本类型上 在 user对象中需要
- mysql数据库复制
核心命令是 myssqldump mysqldump --host=host1 --opt sourceDb| mysql --host=host2 -C targetDb 详情参考: MySQL数据 ...
- java web 跨域
服务器端解决跨域问题的三种方法 跨域是指html文件所在的服务器与ajax请求的服务器是不同的ip+port,例如: - ‘192.168.1.1:8080’ 与 ‘192.168.1.2:808 ...
- nginx配置【转】
转自:http://www.ha97.com/5194.html #定义Nginx运行的用户和用户组user www www; #nginx进程数,建议设置为等于CPU总核心数.worker_proc ...
- proc
1. /proc 下文件的内容是动态创建的,当文件可写时可用作控制和配置目的. 2. 在某个进程读取 /proc 文件时,内核会分配一个内存页,驱动程序通过这个内存页将数据返回到用户空间 (read( ...