即兴的灵感

思维是一种艺术; 艺术需要灵感。

博客好友

最新评论

Spring笔记之一(初探Spring)

    初探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进行配置)。


 
凤凰涅槃/浴火重生/马不停蹄/只争朝夕
     隐姓埋名/低调华丽/简单生活/完美人生

posted on 2007-09-24 01:31 poetguo 阅读(1922) 评论(5)  编辑  收藏 所属分类: Spring

评论

# re: Spring笔记之一 2007-09-24 09:32 千里冰封

我以前也想学spring,可就是一直学不进去:(  回复  更多评论   

# re: Spring笔记之一(初探Spring) 2007-09-24 10:58 improviser

开始研究...从现在开始...  回复  更多评论   

# re: Spring笔记之一(初探Spring) 2007-09-24 23:28 刘甘泉

@千里冰封
。。。全都回复的是这个。。spring会用就可以了,里面的具体代码,有时间就看吧  回复  更多评论   

# re: Spring笔记之一(初探Spring) 2007-10-22 17:19 悟空

师傅 我就从你这里开始 spring 拉  回复  更多评论   

# re: Spring笔记之一(初探Spring) 2007-10-22 23:28 improviser

哈哈 一起学习 共同进步  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航: