- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[IoC]2 详解Spring的IoC、DI
A、Spring的DI机制Spring 从核心而言,是一个DI 容器,其设计哲学是提供一种无侵入式的高扩展性框架。即无需代码中涉及Spring专有类,即可将其纳入Spring容器进行管理。为了实现无侵入性的目标。Spring大量引入了Java的Reflection(反射)机制,通过动态调用的方式避免硬编码方式的约束,并在此基础上建立了其核心组件BeanFactory,以此作为其依赖注入机制的实现基础。org.springframework.beans包中包括了这些核心组件的实现类,核心中的核心为BeanWrapper和BeanFactory类。A.1、BeanWrapper和动态设置属性所谓依赖注入,即在运行期由容器将依赖关系注入到组件之中。讲的通俗点,就是在运行期,由Spring根据配置文件,将其他对象的引用通过组件的提供的setter方法进行设定。A.1.1、reflection利用反射reflection机制实现动态设置对象属性我们还是以《[spring]1 初识spring和IOC、DI》中的例子为例。public static void diByReflection() throws Exception{Class cls = Class.forName(spring.springGuide.chapter01.demo01.LowerAction);Method mtd = cls.getMethod(setMessage,new Class[]{String.class});Object obj = (Object)cls.newInstance();mtd.invoke(obj,new Object[]{Erica});}A.1.2、BeanWrapperorg.springframework.beans.BeanWrapperBeanWrapper实现动态设置对象属性原理一样不过代码更简单了public static void diByBeanWrapper() throws Exception {Object obj = Class.forName(spring.springGuide.chapter01.demo01.LowerAction).newInstance();BeanWrapper bw = new BeanWrapperImpl(obj);bw.setPropertyValue(message, Erica);System.out.println(message=+bw.getPropertyValue(message));}通过BeanWrapper,我们可以无需在编码时就指定JavaBean的实现类和属性值,通过在配置文件加以设定,就可以在运行期动态创建对象并设定其属性(依赖关系)。A.2、BeanFactory和配置文件org.springframework.beans.factory.BeanFactoryBeanWrapper类实现了动态设置属性,但是未提及配置文件。解析配置文件的工作就由BeanFactory来完成。Bean Factory代表IoC容器。Bean Factory负责根据配置文件创建Bean实例,并对Bean进行管理,可以配置的项目有:1. Bean属性值及依赖关系(对其他Bean的引用)2. Bean创建模式(是否Singleton模式,即是否只针对指定类维持全局唯一的实例)3. Bean初始化和销毁方法A.2.1、XmlBeanFactoryorg.springframework.beans.factory.xml.XmlBeanFactoryXMLBeanFactory类是BeanFactory接口的一个最常用的实现。我们还是以《[spring]1 初识spring和IOC、DI》中的例子为例。使用XmlBeanFactory实现。public static void diByBeanFactory() throws Exception {String fileName = bean.xml;Resource rs = new FileSystemResource(fileName);BeanFactory factory = new XmlBeanFactory(rs);Action action = (Action) factory.getBean(TheAction);System.out.println(action.execute(Rod Johnson));}A.2.2、bean配置文件及说明bean id=TheAction1 class=net.xiaxin.spring.qs.UpperActioninit-method=init des
您可能关注的文档
最近下载
- 小升初语文阅读考点 专题五 写人记事类文章阅读指导 专练卷(含答案)人教统编版.doc VIP
- TCSAE-功能型无人车 自动驾驶功能场地试验方法及要求.pdf VIP
- 机械制图与CAD基础习题集第2版包玉梅习题答案.pdf
- FZ_T07037-2024《纺织企业水重复利用率计算方法》.pdf VIP
- 《企业财务会计习题与实训(第5版)》课后参考答案1-4章程运木.doc
- 人才素质盘点方案.pptx VIP
- 2023天健校招笔试题型.pdf VIP
- 必修下教材文言文逐篇过关挖空训练(二)(解析版)-2026年高考语文一轮复习之古诗文(全国通用).pdf VIP
- 必修下教材文言文逐篇过关挖空训练(一)(解析版)-2026年高考语文一轮复习之古诗文(全国通用).pdf VIP
- 天健笔试押题校招.pdf VIP
文档评论(0)