7.2.1 配置元数据

优质
小牛编辑
129浏览
2023-12-01

7.2.1 配置元数据

如上图所示,Spring的IoC容器使用某种形式的配置元数据,该配置元数据描绘了作为一个程序开发者在程序中如何告诉Spring容器去实例化、配置和组装对象。

传统上,配置元数据以简单而直观的XML格式展现,这也是本章传达Spring IoC容器的关键概念和特性使用最多的形式。

基于XML的元数据是配置元数据唯一允许的形式。Spring IoC容器本身与实际编写配置元数据的格式是完全解耦的。现在,许多Spring应用的开发者选择基于Java的配置。

更多有关在Spring容器中使用配置元数据的其他形式的信息,请见:

  • 基于注解的配置:Spring 2.5引入了对基于注解的配置元数据的支持。
  • 基于Java的配置:从Spring 3.0开始,Spring的JavaConfig项目提供的许多功能成为了Spring Framework核心的一部分,因此,您能够通过使用Java而不是XML文件在应用中定义外部bean。要使用这些新功能,请参阅@Configuration@Bean@Import@DependsOn注解。

Spring的配置由至少一个且通常多于一个必须被容器管理的bean组成。基于XML的配置元数据在顶层的<beans/>元素中用<bean/>元素配置这些bean。基于Java的配置通常是在一个@Configuration注解的类中使用@Bean注解方法。

这些bean定义与构成应用程序的实际对象相对应。通常,你可以定义service层对象、数据访问层对象(DAO)、表示对象(比如Struts的Action实例)、基础结构(infrastructure)对象(比如Hibernate的SessionFactory、JMS的Queue)等等。通常不在容器中配置细粒度的域对象,因为那一般是DAO的职责,而且应该由业务逻辑来创建和加载域对象。不过,可以使用Spring与AspectJ的集成来配置在IoC容器控制外已经创建的对象。请参阅在Spring中使用AspectJ向域对象注入依赖。

下面示例展示了基于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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <bean class="...">
        <!-- collaborators and configuration for this bean go here -->
    </bean>

    <!-- more bean definitions go here -->

</beans>

id属性是一个用于识别单一bean定义的字符串。class属性定义bean的类型,使用完整的类名。id属性的值指向协作对象。引用协作对象的XML片段未在本例中展示,更多信息请参阅依赖。