Spring笔记之一(初探Spring)

转贴处 http://www.blogjava.net/improviser/archive/2007/09/24/147650.html  

初探Spring程序,程序如下:

    

 1  BeanNaming.java
 2       package  spring.beantest;
 3 
 4       import  org.springframework.beans.factory.BeanFactory;
 5       import  org.springframework.beans.factory.xml.XmlBeanFactory;
 6       import  org.springframework.core.io.FileSystemResource;
 7 
 8       public   class  BeanNaming {
 9       public   static   void  main(String []args)
10      {
11          BeanFactory factory  =   new  XmlBeanFactory( new  FileSystemResource( " src/applicationContext.xml " ));
12      
13          String s1  =  (String)factory.getBean( " name1 " );
14          String s2  =  (String)factory.getBean( " name2 " );
15          String s3  =  (String)factory.getBean( " name3 " );
16          String s4  =  (String)factory.getBean( " name4 " );
17          
18          System.out.println((s1  ==  s2));
19          System.out.println((s2  ==  s3));
20          System.out.println((s3  ==  s4));
21          
22          String[] x  =  factory.getAliases( " name3 " );
23           for (String str:x)
24          {
25              System.out.println(str);
26          }
27          
28        }
29      }
30   
31        applicationContext.xml
32        <? xml version = " 1.0 "  encoding = " UTF-8 " ?>
33        <! DOCTYPE beans PUBLIC  " -//SPRING//DTD BEAN//EN "   " http://www.springframework.org/dtd/spring-beans.dtd " >
34        < beans >
35        <!--  aliasing examples  -->
36        < bean id = " 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接口。


   
 1  <! DOCTYPE beans PUBLIC  " -//SPRING//DTD BEAN//EN "   " http://www.springframework.org/dtd/spring-    beans.dtd " >
 2       < beans >
 3       < bean id = " bean_1 "   class = " BeanTest " />
 4       < bean id = " bean_2 "   class = " BeanTest " />
 5       </ beans >
 6 
 7 
 8       public   class  BeanTest {
 9       public   void  test() {
10          System.out.println( " test.. " );
11      }
12     }
13 
14 
15      import  org.springframework.context.ApplicationContext;
16      import  org.springframework.context.support.FileSystemXmlApplicationContext;
17 
18      public   class  BeanNameExample {
19 
20       public   static   void  main(String[] args) {
21          ApplicationContext ctx  =   new  FileSystemXmlApplicationContext(
22           " build/applicationContext.xml " );
23          
24          BeanTest beanOne  =  (BeanTest)ctx.getBean( " bean_1 " );
25          BeanTest beanTwo  =  (BeanTest)ctx.getBean( " bean_2 " );
26          
27          beanOne.test();
28          beanTwo.test();
29        }
30     }
31 
   综上,ApplicationContext与BeanFactory的不同点
   BeanFactory提供了针对JavaBean的管理功能,而ApplicationContext提供了一个更为框架化的实现(从上面的示例中可以看出,BeanFactory的使用方式更加类似一个API,而非Framework style)。ApplicationContext覆盖了BeanFactory的所有功能,并提供了更多的特性。此外, ApplicationContext为与现有应用框架相整合,提供了更为开放式的实现(如对于Web应用,我们可以在web.xml中对 ApplicationContext进行配置)。
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值