转贴处 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进行配置)。
分享到:
相关推荐
SpringCloud服务拆分初探与案例解析cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一次 SpringCloud服务拆分初探与案例解析 cloud-demo第一...
SPRING 笔记SPRING 笔记SPRING 笔记
spring笔记spring基础笔记
spring入门笔记
1. **IoC(Inversion of Control)容器**:Spring的核心特性之一,通过反转控制权,让框架负责管理对象的生命周期和装配,开发者只需定义配置,无需手动创建对象。 2. **依赖注入(Dependency Injection, DI)**:...
Spring 是一个开源的 Java 应用框架,主要设计目标是简化企业级应用的开发。它的核心特性是依赖注入(Dependency Injection,简称 DI)和面向切面编程(Aspect-Oriented Programming,简称 AOP)。Spring 的轻量级...
- **IoC (控制反转)**:这是Spring的核心特性之一。控制反转意味着将对象的创建和依赖管理从应用代码中移除,交由Spring容器负责。这样做的好处是可以减少代码耦合度,提高组件的可测试性和可重用性。 - **DI ...
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
Spring框架是Java开发中最常用的轻量级开源框架之一,它以IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心,极大地简化了企业级应用的开发工作。"Spring笔记示例源...
1. **控制反转(Inversion of Control, IoC)**:IoC是Spring的核心特性之一,通过这种方式,对象的创建和管理交由Spring容器负责,从而降低了组件间的耦合度。 2. **依赖注入(Dependency Injection, DI)**:DI是...
尚硅谷Spring笔记
【尚硅谷周阳老师SpringCloud笔记】是一份深入学习SpringCloud技术体系的教程资源,由知名教育机构尚硅谷的周阳老师编撰。SpringCloud作为微服务架构的重要框架,广泛应用于现代企业的分布式系统开发中。这份笔记...
尚硅谷Spring6的笔记
Spring框架是Java开发中的核心组件,它为应用程序提供了一个全面的基础设施,包括依赖注入(DI)、面向切面编程(AOP)以及数据访问等服务。SSM是Spring、SpringMVC和MyBatis的组合,是Java Web开发的常用框架栈。这...
Spring框架是Java开发中的核心组件,它为应用程序提供...这些笔记将涵盖这些主题的基本概念、使用方法和示例,帮助初学者快速理解和掌握Spring生态系统。通过深入学习和实践,开发者能够构建出高效、可扩展的Java应用。
spring笔记 狂神说
Spring学习笔记( spring视频笔记)
2. **Spring Context**:建立在Core之上,提供了一个配置文件的加载机制及事件传播机制。 3. **Spring AOP**:提供了面向切面编程的实现,让开发者能够更加方便地实现诸如事务管理等功能。 4. **Spring DAO**:提供...
Spring Data JPA则是在JPA之上构建的一层抽象,它扩展了JPA的功能,提供了更多的便利。例如,Spring Data JPA支持自动化的查询生成,只需定义Repository接口,无需编写任何实现代码,就可以执行CRUD(创建、读取、...