首页 > 代码库 > Spring.Net 简单实例-02(属性注入)
Spring.Net 简单实例-02(属性注入)
说明:接续Spring.Net 简单实例-01(IOC)
话不多说看操作
1:为UserInfo添加属性
2: 修改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"/> </context> <objects xmlns="http://www.springframework.net"> <description>An example that demonstrates simple IoC features.</description> <!--//type属性值必须是包含程序集名称在内的类型全名 "命名空间,程序集"--> <object name="UserInfoService" type="YK.OA.SpringNet.UserInfoService, YK.OA.SpringNet"> <!-- using setter injection... --> <!--//name代表属性名:UserName--> <property name="UserName" value=http://www.mamicode.com/"逍遥小天狼"/> </object> </objects> </spring> </configuration>
3:进一步了解
添加一个Person类
4:同时修改UserInfoService类
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace YK.OA.SpringNet { public class UserInfoService:IUserInfoService { //1添加属性 public string UserName { get; set; } //2再次添加一个属性 public Person Person { set; get; } public string ShowMsg() { //此时没有给属性赋值,通过ioc容器实例化时赋值 return "Hello World:" + UserName+",年龄: "+Person.Age; } } }
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 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"> <description>An example that demonstrates simple IoC features.</description> <!--//type属性值必须是包含程序集名称在内的类型全名 "命名空间,程序集"--> <object name="UserInfoService" type="YK.OA.SpringNet.UserInfoService, YK.OA.SpringNet"> <!-- using setter injection... --> <!--//name代表属性名:UserName--> <property name="UserName" value=http://www.mamicode.com/"逍遥小天狼"/> <!--通过ref对Person属性进行关联--> <!--name="表示UserInfo属性" ref表示关联的object名称--> <property name="Person" ref="Person"/> </object> <!--Person也是类,所以先object--> <object name="Person" type="YK.OA.SpringNet.Person, YK.OA.SpringNet"> <property name="Age" value=http://www.mamicode.com/"24"/> </object> </objects> </spring> </configuration>
6运行结果
7:文件分离:当类文件过多后App.config文件过于臃肿
添加Xml文件实现代码分离,并将属性设置为"如果更新则复制"(很重要否则配置文件找不到xml文件)
<?xml version="1.0" encoding="utf-8" ?> <objects xmlns="http://www.springframework.net"> <description>An example that demonstrates simple IoC features.</description> <!--//type属性值必须是包含程序集名称在内的类型全名 "命名空间,程序集"--> <object name="UserInfoService" type="YK.OA.SpringNet.UserInfoService, YK.OA.SpringNet"> <!-- using setter injection... --> <!--//name代表属性名:UserName--> <property name="UserName" value=http://www.mamicode.com/"逍遥小天狼"/> <!--通过ref对Person属性进行关联--> <!--name="表示UserInfo属性" ref表示关联的object名称--> <property name="Person" ref="Person"/> </object> <!--Person也是类,所以先object--> <object name="Person" type="YK.OA.SpringNet.Person, YK.OA.SpringNet"> <property name="Age" value=http://www.mamicode.com/"24"/> </object> </objects>
app.config可简化
一定 要在<context>到加入<resource uri="file://services.xml"/>
<?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 uri="file://services.xml"/> </context> <objects xmlns="http://www.springframework.net"> <!--<description>An example that demonstrates simple IoC features.</description> --><!--//type属性值必须是包含程序集名称在内的类型全名 "命名空间,程序集"--><!-- <object name="UserInfoService" type="YK.OA.SpringNet.UserInfoService, YK.OA.SpringNet"> --><!-- using setter injection... --><!-- --><!--//name代表属性名:UserName--><!-- <property name="UserName" value=http://www.mamicode.com/"逍遥小天狼"/> --><!--通过ref对Person属性进行关联--><!-- --><!--name="表示UserInfo属性" ref表示关联的object名称--><!-- <property name="Person" ref="Person"/> </object> --><!--Person也是类,所以先object--><!-- <object name="Person" type="YK.OA.SpringNet.Person, YK.OA.SpringNet"> <property name="Age" value=http://www.mamicode.com/"24"/> </object>--> </objects> </spring> </configuration>
运行 OK
Spring.Net 简单实例-02(属性注入)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。