Spring XML配置文件结构

XML文件的结构一般如下

<?xml version="1.0" encoding="UTF-8"?>
<beans

xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">

<bean id="helloWorld" class="main.java.com.sommer.learn.HelloWorldImpl"></bean>

</beans>

xmlns是XML Namespace 的缩写,这里表示spring 命名空间。Spring在Classpath中查找所有的 spring.handlers 并解析xml配置的命名空间与对应的处理类。命名空间的这些项目不是固定的,可从 http://www.springframework.org/schema/ 根据需求选择。

这里我们先不讨论它,主要看<bean> </bean>的组成结构,因为它表示如何从IoC容器中获取对象(bean)并完成我们所需要的功能。

上面代码的<bean id="helloWorld "  class=" main.java.com.sommer.learn.HelloWorldImpl"> </bean>,其中helloWorld表示bean的标识,main.java.com.sommer.learn.HelloWorldImpl表示bean的类。这只是bean的一种最简单的配置。

bean的配置项具体如下:

全限定类名(class:用于定义Bean的实现类;

Bean行为:这些定义了Bean在容器中的行为;包括作用域(单例、原型创建)、是否惰性初始化及生命周期等;

Bean创建方式:说明是通过构造器还是工厂方法创建;

Bean之间关系:即对其他bean的引用,也就是依赖关系定义,这些引用bean也可以称之为同事bean
或依赖bean,也就是依赖注入。

一般情况下只有全限定类名是必须的,其他都是可选的。

bean的命名

1.不指定id,只配置必须的全限定类名,由IoC容器为其生成一个标识,程序必须通过“getBean(Class<T> requiredType)”获取Bean;

<bean class="main.java.com.sommer.learn.HelloWorldImpl"></bean>

获取bean的程序

ApplicationContext apc = new ClassPathXmlApplicationContext("springXML/HelloWorld.xml");
HelloWorld hello = apc.getBean(HelloWorld.class);
System.out.println(hello.sayHi());

2. 指定id,必须在Ioc容器中唯一;

<bean id="helloWorld" class="main.java.com.sommer.learn.HelloWorldImpl"></bean>

获取bean的程序

<span style="font-size:12px;">ApplicationContext apc = new ClassPathXmlApplicationContext("springXML/HelloWorld.xml");
HelloWorld hello = apc.getBean("helloWorld",HelloWorld.class);
System.out.println(hello.sayHi());
</span>

3. 指定name,必<alias alias="alias1" name="bean"/>须在Ioc容器中唯一

<bean name="helloWorld" class="main.java.com.sommer.learn.HelloWorldImpl"></bean>

获取bean的程序

<span style="font-size:14px;"><span style="font-size:12px;">ApplicationContext apc = new ClassPathXmlApplicationContext("springXML/HelloWorld.xml");
HelloWorld hello = apc.getBean("helloWorld",HelloWorld.class);
System.out.println(hello.sayHi());  </span><span style="font-family:Microsoft YaHei;">
</span></span>

4. 指定别名alias(一个bean可以有多个)

<bean name="helloWorld" class="main.java.com.sommer.learn.HelloWorldImpl"></bean>

<aliasalias="alias1" name="bean"/>

获取bean的程序

ApplicationContext apc = new ClassPathXmlApplicationContext("springXML/HelloWorld.xml");
HelloWorld hello = apc.getBean("alias1",HelloWorld.class);  //这里当然也可以根据name获得
System.out.println(hello.sayHi());  

如果同时指定了id和name,id就是标识符,而name就是别名,必须在Ioc容器中唯一;

如果指定多个name,第一个被用作标识符,其他的是别名,所有标识符也必须在Ioc容器中唯一;

注:name或id都作为“标识符”,那为什么还要同时存在呢?这是因为当使用基于XML的配置元数据时,在XML中id是一个真正的XML
id属性,因此可以利用XML解析器来验证引用的这个id是否存在,从而更早的发现是否引用了一个不存在的bean,而使用name,则可能要在真正使用bean时才能发现引用一个不存在的bean。



版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-08 20:05:26

Spring XML配置文件结构的相关文章

spring xml配置

一个完整的spring xml配置:是把action,service,dao以及其它的资源性配置(如basedao)和公共性配置(如连接数据库)配置在resource.xml中,这样就有四个xml配置信息. 案例: 四个xml配置: applicationContext-action.xml: <?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframe

第3章 最小化Spring XML配置

目录: 自动装配Bean属性 使用注解装配 自动检测Bean 使用Spring基于Java的配置 自动装配Bean属性 四种类型的自动装配: 1 byName 通过id的名字与属性的名字进行判断,要保证Bean实例中属性名字与该装配的id名字相同. 2 byType 通过类型确定装配的bean,但是当存在多个类型符合的bean时,会报错. 3 contructor 在构造注入时,使用该装配方式,效果如同byType. 4 autodetect 首先尝试使用constructor进行自动装配.如果

Spring XML配置--使用注解装配(@Atutowired、@Inject、@Resource)

陈科肇--http://blog.csdn.net/u013474104/article/details/44352765 ======= 1.装配术语 创建应用对象之间协作关系的行为通常被称为装配 2.使用注解装配 Spring是从Spring2.5开始引入使用注解自动装配的. Spring容器是默认禁用注解装配的,因此如果要使用Spring的注解装配,你必须启用它.启用方式:使用Spring的context命名空间配置中的<context:annotation-config>元素,配置启用

&lt;Spring实战&gt;3:最小化Spring XML配置

1 自动装配 Bean 属性 1.1 4 种类型的自动装配 byName:把与 Bean 的属性具有相同名字或 ID 的其他 Bean 自动装配到 Bean 的对应属性中 byType:把与 Bean 的属性具有相同类型的其他 Bean 自动装配到 Bean 的对应属性中 constructor:把与 Bean 的构造器入参具有相同类型的其他 Bean 自动装配到 Bean 构造器的对应入参中 autodetect:首先尝试使用 constructor 进行自动装配,如果失败再尝试使用 byTy

[Spring]04_最小化Spring XML配置

4.1 自动装配 Bean Spring 装配 bean 时,有时非常明确,就是需要将某个 bean 的引用装配给指定属性. 例如,若应用上下文中只有一个 javax.sql.DataSource 类型的 bean,那么任意一个依赖 DataSource 的其他 bean 就是需要这个 DataSource Bean. 为了应对这种明确的装配场景,Spring提供了自动装配(autowiring). 4.1.1 四种类型的自动装配 Spring提供了4种自动装配策略 (1)byName——把与

spring xml配置标签详解

<!-- 指定类的名称 在对bean进行定义时,除了使用id属性来指定名称之外,为了提供多个名称,可以使用alias标签来指定. --> <alias name="" alias=""/> <!-- applicationContext.xml文件中使用import的方式导入有模块配置文件 --> <import resource=""/> <!-- 创建类 --> <bean&g

spring xml配置方式 笔记

1.什么是spring spring框架是开源的.轻量级的企业级应用开发框架,目的在于减少了侵入:spring框架提供整体的解决方案,开发者可以选择使用spring提供的解决方案,也可以和第三方框架进行整合开发. 2.spring的本质是:管理软件中的对象,对象如何创建,以及维护对象之间的关系. 3.spring的核心:AOP和IOC(Inversion of control). 即面向切面编程和控制反转.可以降低组件间的耦合度,即解耦,便于系统以后的维护. IOC:的原理:指程序中的对象的获取

Spring实战3-最小化Spring XML配置

自动装配Bean属性 一共有四种自动装配类型(需要在Bean配置里添加autowire属性来指定用哪种类型) byName-把与Bean的属性具有相同名字或ID的其他Bean自动装配到Bean的对应属性中.如果没有跟属性的名字相匹配的Bean,则该属性不进行装配.--实际上对比的是Bean ID. byType-把与Bean的属性具有相同类型的其他Bean自动装配到Bean的对应属性.如果没有跟属性的类型相匹配的Bean,则该属性不被装配.局限性:如果Spring找到多个Bean,它们的类型都与

最小化Spring XML配置

自动装配 有以下几种方式: 1 byName 通过id的名字与属性的名字进行判断,要保证Bean实例中属性名字与该装配的id名字相同. 2 byType 通过类型确定装配的bean,但是当存在多个类型符合的bean时,会报错. 3 contructor 在构造注入时,使用该装配方式,效果如同byType. 4 autodetect 首先尝试使用constructor经行自动装配.如果失败,再次尝试使用byType经行自动装配.(这个测试了,3.0.5版本不可用了,不知道是不是被移除了.) 采用b