(环境:.Net1.1 ,Spring.net 1.2 Preview)

1.集合属性注入
    我们的组件经常需要集合类型的属性注入,比如我的Hook(钩子)组件需要注入一个集合,该集合中的元素(int型)指明了要截获哪些类型的消息。我们经常使用IList处理集合问题:

#regionHookList 其中元素为整数类型privateIList hookList=newArrayList() ;publicIList HookList
        {
set{this.hookList=value ;
            }
        }
#endregion

对应的Spring配置片断如下:

<property name="HookList">
                                <list>
                                    <value>1</value>
                                    <value>3</value>
                                    <value>2</value>
                                </list>
                             </property>

当IOC容器根据配置组装后,发现HookList中的元素是string类型的,因为IList中可以容纳任意类型的object,所以Spring采用了配置的默认类型--string。不出你想象,在运行时,如果使用下面的代码一定会抛出异常:

foreach(intkeyinthis.HookedList)

在经过一番思索和试验后,结论是这样的:
(1)如果要设置的集合属性中的元素是string类型的,使用IList就很好。
(2)如果是其他类型,则属性集合的类型最好是目标类型的数组,即上面的属性可以改为:

#regionHookListprivateint[] hookList=newint[0] ;publicint[] HookList
        {
set{this.hookList=value ;
            }
        }
#endregion

属性的定义经过修改后,配置文件和使用它的代码不用做任何修改即可正常工作。

2.2006-06-12  当Spring依据配置文件装配对象时,如果发生错误,那么Spring在抛出异常之前将会依次调用每个已实例化对象的Dispose方法,然后再抛出System.Configuration.ConfigurationErrorsException。
    如果你的程序在调用Spring.Context.Support.ContextRegistry.GetContext()时没有了反应,那么很可能是在调用某个实例的Dispose方法中有ManualResetEvent.WaitOne(-1, true);的存在。

3.2006-06-13 从多个Xml配置文件中读取对象
    有三种类型的配置文件可以用来装配组件:
(1)App.config 在Context配置节中作如下指示:

<resource uri="config://spring/objects"/>

(2)嵌入到程序集中的xml配置文件。在Context配置节中作如下指示:

<resource uri="assembly://SpringNestConfigTest/SpringNestConfigTest/AppContext.xml"/>

格式: uri="assembly://MyAssembly/MyProject/AppContext.xml"/

(3)AppBase下的普通xml配置文件。在Context配置节中作如下指示:

<resource uri="file://objects.xml"/>

综合起来:

<context><!--usingsectioninApp.config--><resource uri="config://spring/objects"/><!--usingembedded assembly configuration file--><resource uri="assembly://SpringNestConfigTest/SpringNestConfigTest/AppContext.xml"/><!--usingcommon configuration file--><resource uri="file://objects.xml"/></context>

比如objects.xml的内容:

<?xml version="1.0"encoding="utf-8"?><objects xmlns="http://www.springframework.net"><objectname="esbNetMessageHook"type="ESFramework.Network.EsbNetMessageHook ,ESFramework"></object><objectname="agileTcp"type="ESFramework.Network.Tcp.AsynTcp ,ESFramework"><property name="EsbLogger"ref="esbLogger"/></object></objects>

esbLogger对象定义于AppContext.xml中。

转载于:https://www.cnblogs.com/zhuweisky/archive/2006/03/29/361535.html

【Spring.net点滴】相关推荐

  1. Spring点滴一:Spring Ioc 容器

    Spring 容器: Spring 容器是Spring框架的核心.Spring容器将创建Bean对象实例,把它们联系在一起,配置它们,并管理它们整个生命周期从创建到销毁.Spring 容器通过依赖注入 ...

  2. Spring点滴二:Spring Bean

    Spring Bean: 被称作bean的对象是构成应用程序的支柱,是由Spring Ioc容器管理.bean是一个被实例化,配置.组装并由Spring Ioc容器管理对象. 官网API:A Spri ...

  3. 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(四):使用 命名空间 简化配置...

    在(三)里面.我们引入了 <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBe ...

  4. 注解的力量 -----Spring 2.5 JPA hibernate 使用方法的点滴整理(六): 一些常用的数据库 注解...

    一. 实体 Bean 每个持久化POJO类都是一个实体Bean, 通过在类的定义中使用 @Entity 注解来进行声明. 声明实体Bean @Entity public class Flight im ...

  5. Spring Cloud Gateway 突发高危漏洞,下一代云原生网关恰逢其时?

    Spring Cloud Gateway 突发高危漏洞 Log4j2 的漏洞刚告一段落,Spring 官方在 2022 年 3 月 1 日发布了 Spring Cloud Gateway 的两个 CV ...

  6. Spring Boot Serverless 实战 | Serverless 应用的监控与调试

    作者:西流|阿里云函数计算专家 导读:Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序.在 ...

  7. java中什么是task_20171018java总结——Spring任务调度task:scheduled-tasks

    从认识eclipse开始到现在,学习编程已经接近8个月的时间,从什么都不懂,到现在慢慢一点点学习编程,自己在不断地进步,要学习的地方还有很多. 自己也从这个平台收获到了很多知识,我也希望在这个博客上面 ...

  8. Spring AOP中的静态代理和动态代理的原理和实践

    对于最近博主最近写博客的兴致大发,我也在思考:为什么而写博客?在互联网时代,无论你是牛人大咖,还是小白菜鸟,都有发表自己看法的权利.无论你是对的还是错的,都会在这个平台上找到答案.所以,我会尽可能去写 ...

  9. 毕业倒计时 — 科班仔Java后端的点滴与学习路线规划

    毕业倒计时 - 科班仔Java后端的点滴与学习路线规划 文章目录 毕业倒计时 - 科班仔Java后端的点滴与学习路线规划 一.前言 二.选好方向-"站在风口上,猪都能上天" 三.学 ...

最新文章

  1. 使用echart的雷达图的时候,如果文字越界的解决办法记录,标签文字自动换行
  2. egret中loadingUI的自定义
  3. 操作系统(5)-进程调度算法
  4. new 操作符干了什么?
  5. dbForge Schema Compare for MySQL入门教程:预览架构同步脚本和同步架构
  6. 测试先知和启发式方法
  7. nginx 配置php
  8. python2.7怎么升级python3_python2.7升级至python3.6
  9. (精品)java宠物医院管理系统+论文+答辩ppt+部署视频+效果图效果视频
  10. Thinkphp使用CKEditor4富文本编辑器
  11. 2022年全新PHP程序开发在线工单管理系统源码,售后工单系统
  12. php mysql常见面试题_PHP常见面试题总结
  13. JAVA学习导图、思维导图
  14. Spring boot视频播放(解决MP4大文件无法播放),整合ffmpeg,用m3u8切片播放。
  15. 花旗将老虎证券目标价上调365%、将富途控股目标价上调106%
  16. 多雷达视频融合(1)——需求分析及解决方案
  17. paparazzi 使用3DR数传模块
  18. SQL 左连接中on后面加where和加and的区别
  19. 内部寄存器:通用寄存器、控制寄存器、段寄存器
  20. 台式计算机电源怎么看,如何查看台式机电源功率

热门文章

  1. java中import的使用
  2. java类加载体系,Java类加载体系
  3. 触发JVM进行Full GC的情况及应对策略
  4. IOTA基金会宣布推出终端用户钱包Firefly
  5. 微软征询“Xbox支付方式”,选项包括比特币支付
  6. SAP License:雾里看花系列——德国!SAP!中国企业!高管! SAP权限管控
  7. 谈谈线下消费分期的风险点
  8. web电商系统、电商平台WEB端交互原型模板、用户中心、会员中心、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务、Axure原型、rp原型、电商原型、商城系统原型
  9. AGC 26 F Manju Game
  10. gevent的同步与异步