DI spring.net简单使用

时间:2021-07-25 16:14:10

IOC或DI  spring.net简单使用

一.spring.net是什么?

Spring 框架本是 Java 平台上一个应用非常多的、开源的框架。虽然语言是固定的,但是好的方法应该是通用的,于是 Spring 框架 就被程序员从 Java 平台搬迁到了 .NET 平台。

二.spring.net的作用:

spring框架作用是控制反转及依赖注入;

三.spring.net的Demo:

1.引用spring.net程序集:

nuget或者找到spring.net的程序集即可

2.创建帮助类:

 public class SpringHelper
{
#region Spring容器上下文 +IApplicationContext SpringContext
/// <summary>
/// Spring容器上下文
/// </summary>
private static IApplicationContext SpringContext
{
get
{
return ContextRegistry.GetContext();
}
}
#endregion #region 获取配置文件配置的对象 +T GetObject<T>(string objName) where T : class
/// <summary>
/// 获取配置文件配置的对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="objName"></param>
/// <returns></returns>
public static T GetObject<T>(string objName) where T : class
{
return (T)SpringContext.GetObject(objName);
}
#endregion
}

3.配置:

为了不让web.config文件不是很大,于是把他们拆分;

在ui层项目中新建一个文件夹:Config,然后在他里面创建几个xml文件,xml就是spring.net的配置,如下图:

DI  spring.net简单使用

web.config中配置:

在<configuration>节点下配置如下图:

  <configSections>
<sectionGroup name="spring">
<!--配置解析Spring块的对象-->
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core"/>
<!--配置解析Spring存放对象的容器集合-->
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core"/>
</sectionGroup>
</configSections>
<!--Spring.Net节点配置-->
<spring>
<context>
<!--容器配置-->
<!--<resource uri="config://spring/objects"/>-->
<!--xml文件方式,更改属性,复制到输出目录:始终复制-->
<resource uri="~/Config/dal.xml"/>
<resource uri="~/Config/service.xml"/>
<resource uri="~/Config/controllers.xml"/>
</context>
</spring>

xml配置如下:(属性注入的方式)
controllers.xml配置:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object type="ZLP.MVC.Controllers.HomeController, ZLP.MVC.Controllers" singleton="false" >
<!--<property name="UserBLL" ref="UserBLL" />-->
</object>
</objects>

service.xml配置:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object name="UserBLL" type="ZLP.BLL.UserBLL, ZLP.BLL" singleton="false">
<!--<property name="UserDAL" ref="UserDAL" />-->
</object>
</objects>

dal.xml配置:

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net">
<object name="UserDAL" type="ZLP.DAL.UserDAL, ZLP.DAL" singleton="false"></object>
</objects>

2.获取对象:

 IUserBLL UserBLL = SpringHelper.GetObject<IUserBLL>("UserBLL");

四.完整测试Demo:(vs2017开发的)

https://download.csdn.net/download/zhang1096646030/11064414