Spring笔记之一(初探Spring)

转载 2007年09月25日 14:40:00

转贴处 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进行配置)。
  

Spring Aop 初探(3)

只是为了自己更容易记住,理解相关内容,所以写了一篇简单的文章,主要还是参考前辈的大作完成。 前面两篇都是通过代码的方式实现 Spring AOP 的相关内容,现在使用Spring的注释来完成Spr...

spring源码学习之路---AOP初探(六)

作者:zuoxiaolong8810(左潇龙),转载请注明出处。             最近工作很忙,但当初打算学习spring源码的事已经基本告一段落,只是一直没时间写这些记录性的文字。   ...

Spring初探01_IOC简单实例

最近看了一部爱情喜剧《疯岳俏佳人》,里面的“爱情科技公司”便类似于Spring容器,在小岳岳类和姗姗类之间起着控制反转(IOC)的作用。控制的什么被反转了?获取对象的方式Spring被反转了。(由小岳...

Spring初探之bean工厂(上)

Spring是什么?Spring的中文名是春天,它是软件开发人的春天,是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架。我以一个简单的示例解构spring是怎样管理java对象的。 首...
  • Windy83
  • Windy83
  • 2012年03月28日 23:22
  • 6660

spring集成cxf初探(经过测试)

spring集成cxf初探(经过测试)

spring源码学习之路---IOC初探(二)

作者:zuoxiaolong8810(左潇龙),转载请注明出处。           上一章当中我没有提及具体的搭建环境的步骤,一个是不得不承认有点懒,另外一个我觉得如果上章所述的那些环境都还不会搭...

Spring框架--初探事务管理器

初学Spring框架--事务管理器
  • Jiax96
  • Jiax96
  • 2017年08月01日 12:54
  • 126

spring security3.x学习(20)_初探authorize标签和第四个例子

第四个例子也就是spring security3那本书中的第五章的例子。 csdn下载:http://download.csdn.net/detail/dulei294948/6295933(包...

Spring Aop 初探(4)

1. 创建maven工程文件,其中pom.xml 文件的内容如下:                             org.springframework             spr...

初探spring之IoC实现

反向控制(IoC)
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring笔记之一(初探Spring)
举报原因:
原因补充:

(最多只允许输入30个字)