Spring中注入概念的简单介绍.doc

上传人:cl****1 文档编号:543996082 上传时间:2023-07-22 格式:DOC 页数:7 大小:64.50KB
返回 下载 相关 举报
Spring中注入概念的简单介绍.doc_第1页
第1页 / 共7页
Spring中注入概念的简单介绍.doc_第2页
第2页 / 共7页
Spring中注入概念的简单介绍.doc_第3页
第3页 / 共7页
Spring中注入概念的简单介绍.doc_第4页
第4页 / 共7页
Spring中注入概念的简单介绍.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Spring中注入概念的简单介绍.doc》由会员分享,可在线阅读,更多相关《Spring中注入概念的简单介绍.doc(7页珍藏版)》请在金锄头文库上搜索。

1、核心提示:相对于Hibernate(冬眠),Spring(春天),具有更多的诗意与希望的感觉,是为了解决传统J2EE开发效率过低、开发商之间不统一、没有真正实现写一次到处使用,它的优点有如下: 1、低侵入式设计,代码污染极低(我是学php的,前几天看struts2,到处讲代码污染 相对于Hibernate(冬眠),Spring(春天),具有更多的诗意与希望的感觉,是为了解决传统J2EE开发效率过低、开发商之间不统一、没有真正实现“写一次到处使用”,它的优点有如下:1、低侵入式设计,代码污染极低(我是学php的,前几天看struts2,到处讲代码污染,现在才有点理解这个概念,低耦合,解耦合,在p

2、hp中这个概念用的少)。2、独立于各种应用服务,真正实现写一次到处都可以使用。3、用户可选择的自由度高,用户可以选择部分或者是全部SPRING的功能,它并不是设计来取代其它框架,可以和其它的框架(如STRUTS、HIBERNATE)等结合极好。4、面向接口的编程方式,使得代码的偶合度降到最低。5、所有的BEAN默认都被会单态化,相同的BEAN只会被初使化一次,因而节省了BEAN初使化的时间及减少垃圾回收,增加了应用效率。.有以上的优点的结合,因而它是被广大程序员所欢迎的,因为它可以给我们带来高效、稳定的开发,很大程度的减少了程序的开发、维护周期,也就自然的减少了软件开发的费用。下面简单的介绍两

3、个应用示例,这些示例都来自于书本,都简单易懂,我也会详细的加以说明,另外需要使用下面的示例,需要引用Spring的JAR包:Spring.jar,该JAR包包括了大部份的应用,如果暂时不需要SPRINT的其它功能,该JAR足以。以下的程序,全部都是调试通过的。示例一、不同的人说不同的话1、建立接口工厂模式在SRPING中是随处体现,且提倡面向接口,因此首先建立接口:人1. packagetest; 2. publicinterfacePerson 3. publicvoidsayHello(); 4. publicvoidsayBye(); 5. 2、建立两种具体的人:中国人、美国人1. /中

4、国人 2. 3. packagetest; 4. 5. publicclassChineseimplementsPerson 6. publicvoidsayBye() 7. System.out.println(再见); 8. 9. publicvoidsayHello() 10. System.out.println(你好); 11. 12. 13. 14. /美国人 15. 16. packagetest; 17. 18. publicclassAmericanimplementsPerson 19. publicvoidsayBye() 20. System.out.println(B

5、ye); 21. 22. publicvoidsayHello() 23. System.out.println(hello); 24. 25. 26. 3、建立bean映射配置文件,bean.xml(这个文件名是什么没有关系,在初使化的时候指定给初使化程序就可以)1. 2. 4. 5. 6. 7. 8. 4、建立JAVA测试类:1. packagetest; 2. 3. importorg.springframework.context.ApplicationContext; 4. importorg.springframework.context.support.FileSystemXml

6、ApplicationContext; 5. publicclassCaller 6. publicstaticvoidmain(Stringargs) 7. Callercaller=newCaller(); 8. caller.doIt(); 9. 10. 11. publicvoiddoIt() 12. 13. /*获取bean映射配置文件,配置文件放于与当前测试类在同一个目录下*/ 14. ApplicationContextctx=newFileSystemXmlApplicationContext(getClass().getResource(bean.xml).toString(

7、); 15. Personperson=null; 16. person=(Person)ctx.getBean(chinese); 17. person.sayHello(); 18. person.sayBye(); 19. 20. person=(Person)ctx.getBean(american); 21. person.sayHello(); 22. person.sayBye(); 23. 24. 5、对以上示例调用的说明:A)、对接口Person和具体实现类Chinese、American就没有什么需要说明的了,和其它的编程方式,都是先定义接口,实现类再通过继承接口实现其方法

8、。B)、映射类中将类的路径定义为一个id的名称,到时系统根据传到的id名称,到配置文件中去找到该类的绝对路径,再通过反射原理加载该类,并返回其对象,这个是通过getBean这个动作完成的。C)、根据里氏代换原则,能够接收父类的地方,都可以接收子类,所以这个时候通过getBean返回的对象(如Chinese或者American),都可以赋给接口Person,这个时候接口类调用其中的方法的时候,因为这个时候父类实际上接受的是子类的对象,因而这个时候调用的就是指定子类的方法。这个时候Spring就帮我们完成了如下工作:1. Personperson=newChinese(); 只是子类不是通过显示给

9、出来的,而是通过Spring工厂通过映射配置生成的。示例二、设值注入设值注入是依赖注入的一种,依赖注入早期叫控制反转,也可以称反射,他们的意义都相同。当某个 Java 实例(调用者)需要另一个Java 实例(被调用者)时,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。而在依赖注入的模式下,创建被调用者的工作不再由调用者来完成,通常由 Spring 容器来完成,然后注入调用者,因此称为控制反转,也称为依赖注入。1、建立接口:人与斧头人,定义一个动作:1. packagetest2; 2. publicinterfacePerson 3. publicvoiduseAxe(); 4.

10、5. 斧头,定义一个动作:1. packagetest2; 2. 3. publicinterfaceAxe 4. publicvoidchop(); 5. 6. 2、建立接口的实现类:中国人与石斧中国人1. packagetest2; 2. 3. publicclassChineseimplementsPerson 4. /*默认无参构造方法不管为私的还是公有的,都可以访问,并且要保证bean中存在可以被外界访问的无参构造函数*/ 5. privateChinese(); 6. /*定义需要被使用的斧头接口,具体使用什么斧头这里不管*/ 7. privateAxeaxe; 8. /*定义被注

11、入斧头的set方法,该方法一定要符合JAVABEAN的标准。在运行时候, 9. *Sping就会根据配置的,找到需要注入的实现类*/ 10. publicvoidsetAxe(Axeaxe) 11. this.axe=axe; 12. 13. /*这个时候使用的axe,就不再是接口Axe本身,而是被注入的子类实例,所以这里的chop()动作就是具体子类的chop动作*/ 14. publicvoiduseAxe() 15. axe.chop(); 16. 17. 18. 石斧1. packagetest2; 2. 3. publicclassStoneAxeimplementsAxe 4. publicvoidchop() 5. System.out.println(石斧慢慢砍); 6. 7. 8. 3、建立映射配置文件bean.xml:1. 2. 4. 5. 6. 7. 8. 13. 14. 15. /

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号