初探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进行配置)。
				
		
		
		
		
		
		
				
						
								
										 
 
凤凰涅槃/浴火重生/马不停蹄/只争朝夕
     隐姓埋名/低调华丽/简单生活/完美人生