Spring的配置文件是用于指导Spring工厂进行Bean的生产、依赖关系注入及Bean实例分发的"图纸",它是一个或多个标准的XML文档,J2EE程序员必须学会并灵活应用这份"图纸",准确地表达自己的"生产意图":
Spring位置文件示例
Spring配置文件的一般结构如下:
<beans> |
|
<import resource="resource.xml"/> | -------用于导入其它配置文件bean的定义,为了加载多个配置文件 |
<import resource="resource2.xml"/> |
|
<bean id="bean1" class="***"></bean> |
|
<bean name="bean2" class="***"></bean> |
|
<alias alias="bean3" name="bean2"/> | -------用于定义bean的别名,这里的意思是bean2和bean3是同一个bean,只不过是名字不同 |
</beans> |
|
Spring容器高层视图
SPring容器启动基本条件
- Spring的框架类包
- Bean的配置信息
- Bean的实现类
Bean的元素数据信息:
- Bean的实现类
- Bean的属性信息(数据源的连接数,用户名和密码等)
- Bean的依赖关系
- Bean的行为配置(生命周期范围,生命周期各个过程的回调函数等)
- Bean的创建方式(构造器 还是 工厂方法 来创建的)
基于XML的配置
Spring的配置文件是基于XML格式的,Spring1.0的配置文件采用DTD格式
Spring2.0以后使用Schema的格式,让不同类型的配置拥有了自己的命名空间,使配置文件更具有扩展性。
采用基于Shcema的配置格式,文件头的声明会复杂一些:
<?xml version="1.0-" encoding="UTF-8" ?> |
|
<beans> |
|
xmlns="http://www.springframwork.org/schema/beans" | 默认命名空间 |
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | xsi标准命名空间,用于指定自定义命名空间的Schema文件。 |
xmlns:aop="http://springframwork.org/schema/aop" | aop为命名空间的简称,后面是命名空间的全称,必须在xsi命名空间为其指定空间对应的Schema文件; |
Xsi:schemaLocation=" |
|
为每个命名空间指定具体的Schema文件 | |
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd |
|
习惯上用文档发布的官方网站和相关网站目录来作为全限定名;既可以标志文档所属的机构,又可以很好地避免重名的问题 | |
http://www.springframework.org/schema/context/spring-aop-3.0.xsd"> |
|
<!--默认命名空间配置--> |
|
<bean id ="foo" class="com.stone.Foo"/> | 文档中无命名空间前缀的元素都属于默认命名空间 |
|
|
<aop:config> |
|
<aop:pointcut id="mycut" expression="execution(*com.stone.*(..))"/> | <!--aop命名空间配置--> |
</aop:aspect> |
|
</beans> |
|
Spring3.0的配置Schema文件分布在各模块类包中,如果模块拥有对应的Schema文件,则可以在模块类包中找到一个config目录,Schema文件就位于该目录中,如下是对这些Schema文件的用途进行了简单说明:
实例说明:Spring-beans-3.0.xsd
命名空间:http://www.springframework.org/schema/beans
Schema文件:http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
Spring-beans-3.0.xsd (Spring3.0最主要的Schema文件主要用于配置Bean)
Spring-aop-3.0.xsd
Spring-tx-3.0.xsd (声明式事务配置定义的Schema)
Spring-mvc-3.0.xsd
Spring-util=3.0.xsd(为简化某些复杂的标准配置新增的Schema)
Spring-jee-3.0.xsd(为简化j2ee中EJB,JNDI等功能的配置而提供的Schema)
Spring-jdbc-3.0.xsd(为配置Spring内建数据库而提供的Schema)
Spring-jms-3.0.xsd()
Spring-lang-3.0.xsd(为集成动态语言而定义)
Spring-oxm-3.0.xsd()
Spring-task-3.0.xsd(用于任务调度的Schema)
Spring-tool-3.0.xsd(为集成Spring的一些有用工具而提供的Schema)
基于XML配置方式是功能最强的