Spring装配Bean---使用xml配置

简介:

声明Bean

Spring配置文件的根元素是<beans>.

在<beans>元素内,你可以放所有的Spring配置信息,包括<bean>元素的声明.

除了Beans命名空间,Spring的核心框架总共自带了10个命名空间配置:

 命名空间 用途
 aop     为声明切面以及将@AspectJ注解的类代理为Spring切面提供了配置元素
 beans     支持声明Bean和装配Bean,是Spring最核心也是最原始的命名空间
 context 为配置Spring应用上下文提供了配置元素,包括自动检测和装配Bean,注入非Spring直接管理的对象 
jee  提供了与Java EE API的集成,例如JNDI和EJB
 jms 为声明消息驱动的POJO提供了配置元素    
lang  支持配置由Groovy、JRuby、BeanShell等脚本实现的Bean    
 mvc 启用SpringMVC的能力,例如面向注解的控制器、视图控制器和拦截器    
oxm  支持Spring的对象到xml配置的映射    
tx  提供声明式事物配置    
 util 提供各种各样的工具类元素,包括把集合配置为Bean,支持属性占位符元素    

 


 

 

 

 

 

 

 

 

 

 

xml结构如下:

<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
       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-4.0.xsd">

     <bean id="" class="">......</bean>
     <bean id="" class="">......</bean></beans>

基于构造函数注入

使用<constructor-arg>元素。如果不配置<constructor-arg>元素,那么Spring将使用默认的构造函数。

<!-- 诗 --><bean id="poem" class="com.wjx.betalot.impl.Sonnet">
     <constructor-arg value="Sonnet poem"></constructor-arg></bean><!-- 诗人 --><bean id="poet" class="com.wjx.betalot.impl.Joe">
     <constructor-arg ref="poem"></constructor-arg></bean>

通过工厂方法创建Bean

<bean>元素有一个factory-method属性,允许我们调用一个指定的静态方法,从而代替构造函数来创建一个类的实例

<bean id="stage"  class="com.wjx.betalot.impl.Stage" factory-method="getInstance" />

配置Bean的作用域

<bean>元素有一个scope属性,允许我们指定Bean的作用域,Bean的作用域主要有一下几种,默作用域为单例singleton

作用域 定义
singleton 在每一个Spring容器中,一个Bean定义只有一个对象实例(默认)
prototype 允许Bean的定义可以被实例化任意次(每次调用都创建一个实例)
request 在一次HTTP请求中,每个Bean定义对应一个实例。该作用域仅在基于Web的Spring上下文(例如SpringMVC)中才有效
session 在一个HTTP Session中,每个Bean定义对应一个实例。该作用域仅在基于Web的Spring上下文(例如SpringMVC)中才有效
global-session 在一个全局HTTP Session中,每个Bean定义对应一个实例。该作用域仅在Portlet上下文中才有效

 

 

 

 

 

 

 

 

<bean id="poem" class="com.wjx.betalot.impl.Sonnet" scope="prototype">

配置Bean的初始化和销毁方法

Spring提供了Bean生命周期的钩子方法。

为Bean定义初始化和销毁操作,只需要使用init-method和destroy-method参数来配置<bean>元素。init-method属性指定了在初始化Bean时要调用的方法;destroy-method属性指定了Bean从容器移除之前要调用的方法。

<!-- 观众看表演,表演开始前鼓掌欢迎,表演结束鼓掌 -->
<
bean id="auditorium" class="com.wjx.betalot.impl.Auditorium" init-method="applause" destroy-method="applause"/>

使用<beans>元素的default-init-method和default-destroy-method属性配置所有<bean>共同默认的初始化方法和销毁方法

<?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-3.0.xsd"    
       default-init-method="applause"   
       default-destroy-method="applause"> ...    
</beans>

注入Bean的属性

使用<property>元素。value填充基础类型值,ref填充<bean>引用

<!-- 诗 --><bean id="poem" class="com.wjx.betalot.impl.Sonnet">
     <property name="lines" value="Sonnet poem"></property></bean><!-- 诗人 --><bean id="poet" class="com.wjx.betalot.impl.Joe">
     <property name="poem" ref="poem"></property ></bean>

装配集合属性,Spring提供了4种类型的集合配置属性 <list> <set> <map> <props>

<bean id="poeticJuggler" class="com.wjx.betalot.performer.impl.PoeticJuggler">
    <property name="poemsMap">
        <map>
            <entry key="POEM1" value-ref="poem1"/>
            <entry key="POEM2" value-ref="poem2"/>
            <entry key="POEM3" value-ref="poem3"/>
        </map>
    </property>
    <property name="poemProperties">
        <props>
            <prop key="poem3">POEM3</prop>
            <prop key="poem2">POEM2</prop>
            <prop key="poem1">POEM1</prop>
        </props>
    </property>
    <property name="poemList">
        <list>
            <ref bean="poem1"/>
            <ref bean="poem2"/>
            <ref bean="poem3"/>
        </list>
    </property>
    <property name="poemSet">
        <set>
            <ref bean="poem1"/>
            <ref bean="poem2"/>
            <ref bean="poem3"/>
        </set>
    </property></bean>

装配空值

<property name="someNonNullProperty"><null/></property>

除了<property>元素配置属性外,使用spring的命名空间p也可以装配属性,当然你得在<beans>元素中先引入命名空间p

<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
       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-4.0.xsd">

     <bean id="poem" class="com.wjx.betalot.impl.Sonnet" p:line="Sonnet"/>
     <bean id="poet" class="com.wjx.betalot.impl.Joe" p:poem-ref="poem"/></beans>


本文转自 sshpp 51CTO博客,原文链接:http://blog.51cto.com/12902932/1927610,如需转载请自行联系原作者

相关文章
|
8天前
|
XML Java 数据格式
Spring从入门到入土(xml配置文件的基础使用方式)
本文详细介绍了Spring框架中XML配置文件的使用方法,包括读取配置文件、创建带参数的构造对象、使用工厂方法和静态方法创建对象、对象生命周期管理以及单例和多例模式的测试。
46 7
Spring从入门到入土(xml配置文件的基础使用方式)
|
8天前
|
XML Java 数据格式
Spring从入门到入土(bean的一些子标签及注解的使用)
本文详细介绍了Spring框架中Bean的创建和使用,包括使用XML配置文件中的标签和注解来创建和管理Bean,以及如何通过构造器、Setter方法和属性注入来配置Bean。
40 9
Spring从入门到入土(bean的一些子标签及注解的使用)
|
1天前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
11 4
|
1月前
|
XML Java 数据格式
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
Spring 第二节内容补充 关于Bean配置的更多内容和细节 万字详解!
161 18
Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)
|
25天前
|
XML Java 数据格式
spring复习02,xml配置管理bean
详细讲解了Spring框架中基于XML配置文件管理bean的各种方式,包括获取bean、依赖注入、特殊值处理、属性赋值、集合类型处理、p命名空间、bean作用域及生命周期和自动装配。
spring复习02,xml配置管理bean
|
8天前
|
Java 开发者 Spring
Spring bean的生命周期详解!
本文详细解析Spring Bean的生命周期及其核心概念,并深入源码分析。Spring Bean是Spring框架的核心,由容器管理其生命周期。从实例化到销毁,共经历十个阶段,包括属性赋值、接口回调、初始化及销毁等。通过剖析`BeanFactory`、`ApplicationContext`等关键接口与类,帮助你深入了解Spring Bean的管理机制。希望本文能助你更好地掌握Spring Bean生命周期。
33 1
|
10天前
|
Java Spring
获取spring工厂中bean对象的两种方式
获取spring工厂中bean对象的两种方式
11 1
|
11天前
|
Java 开发者 Spring
Spring bean的生命周期详解!
本文详细介绍了Spring框架中的核心概念——Spring Bean的生命周期,包括实例化、属性赋值、接口回调、初始化、使用及销毁等10个阶段,并深入剖析了相关源码,如`BeanFactory`、`DefaultListableBeanFactory`和`BeanPostProcessor`等关键类与接口。通过理解这些核心组件,读者可以更好地掌握Spring Bean的管理和控制机制。
45 1
|
25天前
|
XML Java 数据格式
spring复习03,注解配置管理bean
Spring框架中使用注解配置管理bean的方法,包括常用注解的标识组件、扫描组件、基于注解的自动装配以及使用注解后的注意事项,并提供了一个基于注解自动装配的完整示例。
spring复习03,注解配置管理bean
|
26天前
|
前端开发 Java Spring
关于spring mvc 的 addPathPatterns 拦截配置常见问题
关于spring mvc 的 addPathPatterns 拦截配置常见问题
125 1