Spring笔记(4)-----<bean>的基本配置

来源:互联网 发布:php 记录运行时间 编辑:程序博客网 时间:2024/06/12 10:13

Spring容器成功需要具备的三个条件:

1)Spring框架的类包都已经放在应用程序的类路径下。

2)应用程序为Spring提供了完备的Bean配置信息。

    3)Bean的类都已经放在类路径下。

Spring启动时读取应用程序的Bean配置信息,在容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean的依赖关系,为上层应用提供准备就绪的运行环境。

Bean的配置信息是Bean的元数据信息,有4部分:

1)Bean的实现类。

2)Bean的属性信息。

3)Bean的依赖关系。

4)Bean的行为配置。

元数据在Spring容器内部对应物是有一个个BeanDefination形成的Bean注册表,实现了外部表示与内部信息的解耦。

Bean配置信息定义了Bean的实现以及它们之间的依赖关系,Spring容器根据配置信息在容器内部建立了注册表,,然后根据注册表加载,实例化Bean,并建立依赖关系,然后把这些Bean放入缓冲池中,以供外部程序调用。

Spring配置文件的文件头:

如下示例:

<?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"xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:jee="http://www.springframework.org/schema/jee"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsdhttp://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd>
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"   "http://www.springframework.org/dtd/spring-beans.dtd"><beans><bean id="userDao" class="com.test.dao.UserDao"><property name="sessionFactory" ref="sessionFactory"/></bean><bean id="userService" class="com.test.service.impl.UserServiceImpl" ><property name="userDao" ref="userDao" /></bean></beans>
而Spring的命名问题:id是唯一的,而且有特殊字符限制必须以字母开始,不能以逗号,空格之类的。如果我们想用特殊字符,可以使用<bean>的name属性,name属性可以有特殊字符,而且bean的name可以相同,如果重名以最后一个声明的为准,因为后面的Bean覆盖了前面的Bean.....所以我们还是使用id吧。如果一个Bean的id和name都没声明,那么Spring会根据class属性,你的包名类名去获取Bean.
 

0 1
原创粉丝点击