Bean 定义

被称作 bean 的对象是构成应用程序的支柱。也是由 Spring IoC 容器管理的。

bean 是一个被实例化,组装,并通过 Spring IoC 容器所管理的对象。

这些 bean 是由用容器提供的配置元数据创建的。

bean 定义包含称为配置元数据的信息,下述容器也需要知道配置元数据:

  • 如何创建一个 bean

  • bean 的生命周期的详细信息

  • bean 的依赖关系

每个 bean 定义的属性列表如下:

Spring 配置元数据

Spring IoC 容器完全由实际编写的配置元数据的格式解耦。

有下面三个重要的方法把配置元数据提供给 Spring 容器:

  • 基于 XML 的配置文件

  • 基于注解的配置

  • 基于 Java 的配置

下面是一个基于 XML 配置文件的例子,这个配置文件中有不同的 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"> <!-- A simple bean definition -->
<bean id="..." class="...">
<!-- collaborators and configuration for this bean go here -->
</bean> <!-- A bean definition with lazy init set on -->
<bean id="..." class="..." lazy-init="true">
<!-- collaborators and configuration for this bean go here -->
</bean> <!-- A bean definition with initialization method -->
<bean id="..." class="..." init-method="...">
<!-- collaborators and configuration for this bean go here -->
</bean> <!-- A bean definition with destruction method -->
<bean id="..." class="..." destroy-method="...">
<!-- collaborators and configuration for this bean go here -->
</bean> <!-- more bean definitions go here --> </beans>

在上述示例中:

①xmlns="http://www.springframework.org/schema/beans",默认命名空间:它没有空间名,用于Spring Bean的定义;

②xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance",xsi命名空间:这个命名空间用于为每个文档中命名空间指定相应的Schema样式文件,是标准组织定义的标准命名空间。

在文章: 在IDEA中使用Spring写一个HelloWorld

使用的就是基于 XML 的配置元数据提供给容器。

每天学习一点点,每天进步一点点。

最新文章

  1. SQL TOP 子句、SQL LIKE 操作符、SQL 通配符
  2. 初识Python第二天(1)
  3. 利用eclipse抽取 代码片段为方法
  4. 关于Ajax跨域
  5. 浅析busybox-1.12.0中ash的脚本命令局限性
  6. 命令行分析java线程CPU占用
  7. NUnit使用方法
  8. Spark调优与调试
  9. yum 源问题
  10. imageview设置图片时超长超大图片超出限制(OpenGLRenderer: Bitmap too large to be uploaded into a texture (996x9116, max=4096x4096))
  11. C++入门笔记(二)变量和基本类型
  12. Codechef Bear and Clique Distances
  13. Effective Java 第三版—— 87. 考虑使用自定义序列化形式
  14. Day6 Python常用的模块
  15. Linux基础命令---e2fsck
  16. 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系?
  17. 补发9.27“天天向上”团队Scrum站立会议
  18. org.springframework.dao.CannotAcquireLockException解决
  19. cocostudio使用plist创建序列帧动画图片名称序列错乱的问题
  20. ActiveMQ+SpringMVC+Maven应用示例

热门文章

  1. Shell中的here文档
  2. 怎么break java8 stream的foreach
  3. Spring Boot的TestRestTemplate使用
  4. 基于java的OpenCV安装和配置
  5. 【DNS域名解析命令】 nslookup
  6. 图论--最短路--SPFA
  7. 【Elasticsearch学习】之基础概念
  8. 25-Java-Spring框架(三)
  9. H - Buy Tickets POJ - 2828 逆序遍历 树状数组+二分
  10. 网络流 A - PIGS POJ - 1149 最大流