Spring.net 学习笔记二 依赖注入

本文内容纲要:Spring.net 学习笔记二 依赖注入

Spring.NET 依赖注入  

<property name="Name" value="jackyong"/> 而property 标签正是用来属性注入

值类型的注入是需要使用property 节点的value属性

<property name="Name" value="jackyong"/>

<property name="Age" value="25"/>

同理,内联类型可以是循环引用的对象

<property name="Friend">

<object type="Jackyong.Spring.NET.Person, Spring.NET">

<property name="Name" value="jackpeng"/>

<property name="Age" value="23"/>

<property name="Friend" ref="person"/>

</object>

</property>

构造器注入使用constructor-arg标签作为标示,同样具有于属性注入相同的方式,使用name,ref,value作为构造器注入的属性。

<constructor-arg name="argPerson" ref="person"/>

<constructor-arg name="intProp" value="1"/>

ref 是用来表示是关联到哪个object

name 属性是指属性的名称。

<constructor-arg name="argPerson" ref="person"/>

<constructor-arg name="intProp" value="1"/>

代码:

一.定义person 模板

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Jackyong.Spring.NET

{

public class Person

{

public string Name { get; set; }

public int Age { get; set; }

public Person Friend { get; set; }

}

}

//构造数据

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace Jackyong.Spring.NET

{

public class PersonInitializtion

{

private Person argPerson;

private int intProp;

public PersonInitializtion(Person argPerson, int intProp)

{

this.argPerson = argPerson;

this.intProp = intProp;

}

public void WriteLine()

{

Console.WriteLine(intProp);

//构造函数注入的整型参数

Console.WriteLine(string.Format("intProp:{0}", intProp));

//构造函数注入的Person

Console.WriteLine(string.Format("argPerson Name:{0}", argPerson.Name));

Console.WriteLine(string.Format("argPerson Age:{0}", argPerson.Age));

//内联对象Friend

Console.WriteLine(string.Format("argPerson Friend Name:{0}", argPerson.Friend.Name));

Console.WriteLine(string.Format("argPerson Friend Age:{0}", argPerson.Friend.Age));

//内联对象的循环引用

Console.WriteLine(string.Format("argPerson Friend Friend Name:{0}", argPerson.Friend.Friend.Name));

Console.WriteLine(string.Format("argPerson Friend Friend Age:{0}", argPerson.Friend.Friend.Age));

}

}

}

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Spring.Context;

using Spring.Context.Support;

namespace Jackyong.Spring.NET

{

class Program

{

static void Main(string[] args)

{

IApplicationContext ctx = ContextRegistry.GetContext();

PersonInitializtion initializtion = ctx.GetObject("PersonInitializtion") as PersonInitializtion;

initializtion.WriteLine();

}

}

}

<?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="Jackyong.Spring.NET.Person,Spring.NET">

<!--属性值类型注入-->

<property name="Name" value="jackyong"/>

<property name="Age" value="25"/>

<!--内联对象注入-->

<property name="Friend">

<object type="Jackyong.Spring.NET.Person, Spring.NET">

<property name="Name" value="jackpeng"/>

<property name="Age" value="23"/>

<property name="Friend" ref="person"/>

</object>

</property>

</object>

<object id="PersonInitializtion" type=" Jackyong.Spring.NET.PersonInitializtion, Spring.NET">

<!--构造器注入-->

<constructor-arg name="argPerson" ref="person"/>

<constructor-arg name="intProp" value="1"/>

</object>

</objects>

</spring>

</configuration>

本文内容总结:Spring.net 学习笔记二 依赖注入

原文链接:https://www.cnblogs.com/liuyong/archive/2011/04/06/2007014.html

以上是 Spring.net 学习笔记二 依赖注入 的全部内容, 来源链接: utcz.com/z/295802.html

回到顶部