转贴处 http://www.blogjava.net/improviser/archive/2007/09/24/147650.html
初探Spring程序,程序如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1BeanNaming.java
2packagespring.beantest;
3
4importorg.springframework.beans.factory.BeanFactory;
5importorg.springframework.beans.factory.xml.XmlBeanFactory;
6importorg.springframework.core.io.FileSystemResource;
7
8publicclassBeanNaming{
9publicstaticvoidmain(String[]args)
10{
11BeanFactoryfactory=newXmlBeanFactory(newFileSystemResource("src/applicationContext.xml"));
12
13Strings1=(String)factory.getBean("name1");
14Strings2=(String)factory.getBean("name2");
15Strings3=(String)factory.getBean("name3");
16Strings4=(String)factory.getBean("name4");
17
18System.out.println((s1==s2));
19System.out.println((s2==s3));
20System.out.println((s3==s4));
21
22String[]x=factory.getAliases("name3");
23for(Stringstr:x)
24{
25System.out.println(str);
26}
27
28}
29}
30
31applicationContext.xml
32<?xmlversion="1.0"encoding="UTF-8"?>
33<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">
34<beans>
35<!--aliasingexamples-->
36<beanid="name1"name="name2,name3,name4"class="java.lang.String"/>
37</beans>
输出结果为: true
true
true
name1
name4
name2可以看出,使用中id属性和name属性几乎没有任何区别。调用beanfactory.getAliases(string)的方法时,传入的参数可以是任意一个bean名字,输出的别名则是除去作为参数本身之外的所有 bean名。另:
在写 applicationContxt.xml文件时,如果没有定义<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">,则会抛出Cannot find the declaration of element 'beans' 异常。 以上使用BeanFactory对配置文件进行加载,BeanFactory,是根据配置文件负责创建Bean的实例,并负责Bean的生命周期的管理- --,包括Bean的生成与销毁、Bean的创建方式的识别(是否为singleton)、Bean的各个属性的设定、依赖关系的建立等。
ApplicationContext接口,提供了国际化、事件处理及beans在context中的自查能力。它也可创建具有层次结构context环境,将bean的作用域和可访问区域限制在应用程序的一个特定部分中。下面演示如何使用ApplicationContext接口。
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->1<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN""http://www.springframework.org/dtd/spring-beans.dtd">
2<beans>
3<beanid="bean_1"class="BeanTest"/>
4<beanid="bean_2"class="BeanTest"/>
5</beans>
6
7
8publicclassBeanTest{
9publicvoidtest(){
10System.out.println("test..");
11}
12}
13
14
15importorg.springframework.context.ApplicationContext;
16importorg.springframework.context.support.FileSystemXmlApplicationContext;
17
18publicclassBeanNameExample{
19
20publicstaticvoidmain(String[]args){
21ApplicationContextctx=newFileSystemXmlApplicationContext(
22"build/applicationContext.xml");
23
24BeanTestbeanOne=(BeanTest)ctx.getBean("bean_1");
25BeanTestbeanTwo=(BeanTest)ctx.getBean("bean_2");
26
27beanOne.test();
28beanTwo.test();
29}
30}
31
综上,ApplicationContext与BeanFactory的不同点
BeanFactory提供了针对JavaBean的管理功能,而ApplicationContext提供了一个更为框架化的实现(从上面的示例中可以看出,BeanFactory的使用方式更加类似一个API,而非Framework style)。ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性。此外, ApplicationContext为与现有应用框架相整合,提供了更为开放式的实现(如对于Web应用,我们可以在web.xml中对 ApplicationContext进行配置)。
分享到:
相关推荐
SPRING 笔记SPRING 笔记SPRING 笔记
SpringCloud服务拆分初探与案例解析cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一...
spring笔记spring笔记spring笔记spring笔记spring笔记spring笔记
达内,tarena,spring笔记,springPPT课件,达内spring笔记 spring的全套资料
spring入门笔记
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
Spring笔记 Spring笔记 Spring笔记 Spring笔记 Spring笔记
spring笔记 狂神说
Spring学习笔记,Spring就是一个工厂,可以将所有对象创建和依赖关系维护,交给spring管理
spring笔记.pdf
Spring笔记示例源代码
尚硅谷Spring6的笔记
尚硅谷Spring笔记
Spring学习笔记( spring视频笔记)
spring 初学 笔记 入门提示
spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记spring学习笔记
网上获取的简单关于spring的一些学习笔记, 包括 spring, springMVC, spring cloud, springBoot 和一些其他相关的笔记, 有需要的可以看看
【狂神说】Spring全面详细笔记
编程不良人的SpringCloud笔记和资料,全套 编程不良人的SpringCloud笔记和资料,全套 编程不良人的SpringCloud笔记和资料,全套