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的配置,如下图:

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

DI spring.net简单使用的更多相关文章

  1. Spring的简单demo

    ---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...

  2. Spring的简单应用与基本原理

    一:重要概念理解 Spring很简单,一定不要想得太复杂,只是有些东西很拗口而已 1:IOC(控制反转) 概念:利用反射的原理将对象创建的权利交给了Spring,Spring在运行的时候根据配置文件( ...

  3. 对spring的简单了解

    对spring的简单了解 什么是spring Spring是一个开源框架,是为了解决企业应用开发的复杂性而创建的,同时Spring也是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架 特点 ...

  4. Spring cache简单使用guava cache

    Spring cache简单使用 前言 spring有一套和各种缓存的集成方式.类似于sl4j,你可以选择log框架实现,也一样可以实现缓存实现,比如ehcache,guava cache. [TOC ...

  5. 1.Spring IoC简单例子

    Spring IoC简单例子 1.IHelloMessage.java package com.tony.spring.chapter01; public interface IHelloMessag ...

  6. Spring mvc系列一之 Spring mvc简单配置

    Spring mvc系列一之 Spring mvc简单配置-引用 Spring MVC做为SpringFrameWork的后续产品,Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块 ...

  7. 玩转spring boot——简单登录认证

    前言 在一个web项目中,某些页面是可以匿名访问的,但有些页面则不能.spring mvc提供了HandlerInterceptor接口来应对,只需要重写preHandle方法便可以实现此功能.那么使 ...

  8. Spring.Net 简单实例-02(属性注入)

    说明:接续Spring.Net 简单实例-01(IOC) 话不多说看操作 1:为UserInfo添加属性 2: 修改App.config中代码 <?xml version="1.0&q ...

  9. Spring Framework简单介绍

    Spring Framework        学习java编程不知不觉已经三年时间了,開始的时候,总是喜欢看着视频,然后按部就班的敲打着键盘,每当系统正常执行后.心里乐开了花.最開始的时候,所有的代 ...

随机推荐

  1. fragment 事务回滚 ---动态创建fragment

    import java.util.Date; import java.util.LinkedList; import com.qianfeng.gp08_day23_fragment5.fragmen ...

  2. 修改mysql数据库 允许远程访问

    首先使用root身份进入MySQL mysql>use mysql; //进入mysql表 mysql> selecthost,user from user;  //查看结果是不是root ...

  3. 使用bcp工具对boost库裁剪

    有些时候,我们需要通过源代码来发布我们的产品,在使用了CI工具之后,一般我们要求每天对源码进行构建,以防止代码不可用了还不自知.如果我们使用了Boost库,我们就需要在构建的过程中将Boost同时构建 ...

  4. Spring框架的JDBC模板技术概述

    1. Spring框架中提供了很多持久层的模板类来简化编程,使用模板类编写程序会变的简单 2. 提供了JDBC模板,Spring框架提供的 * JdbcTemplate类 3. Spring框架可以整 ...

  5. 20155335俞昆《java程序设计》第七周总结

    学号  2016-2017-2  <Java程序设计>第X周学习总结 ##  教材学习内容总结 Lambda  的语法概览 String[]  names={“Justin”,”cater ...

  6. 2018.10.02 bzoj4009: [HNOI2015]接水果(整体二分)

    传送门 整体二分好题. 考虑水果被盘子接住的条件. 不妨设水果表示的路径为(x1,y1)(x_1,y_1)(x1​,y1​),盘子表示的为(x2,y2)(x_2,y_2)(x2​,y2​) 不妨设df ...

  7. 2018.07.23 codeforces 438D. The Child and Sequence(线段树)

    传送门 线段树维护区间取模,单点修改,区间求和. 这题老套路了,对一个数来说,每次取模至少让它减少一半,这样每次单点修改对时间复杂度的贡献就是一个log" role="presen ...

  8. hdu-1209(细节题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1209 注意:1.时钟到12要变为0 2.注意比较角度相同的情况 #include<iostrea ...

  9. js,java,jstl多分隔符分割字符串

    1.js多分隔符 分割字符串 var username = “zhao,li;wang.liu”: var arr = str.split(/;|:|,|,|./);  括号里面可以写多分割符号,中英 ...

  10. IntelliJ IDEA 2017版 SpringBoot的关闭自动配置和自定义Banner

    一.关闭自动配置 在jar包下找下边的名字    设置关闭自动配置jar    多个的时候配置       二.自定义Banner   (1)网站搜索一个图案.网址:http://patorjk.co ...