Spring Bean 定义
2024-09-04 06:07:18
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 的配置元数据提供给容器。
每天学习一点点,每天进步一点点。
最新文章
- SQL TOP 子句、SQL LIKE 操作符、SQL 通配符
- 初识Python第二天(1)
- 利用eclipse抽取 代码片段为方法
- 关于Ajax跨域
- 浅析busybox-1.12.0中ash的脚本命令局限性
- 命令行分析java线程CPU占用
- NUnit使用方法
- Spark调优与调试
- yum 源问题
- imageview设置图片时超长超大图片超出限制(OpenGLRenderer: Bitmap too large to be uploaded into a texture (996x9116, max=4096x4096))
- C++入门笔记(二)变量和基本类型
- Codechef Bear and Clique Distances
- Effective Java 第三版—— 87. 考虑使用自定义序列化形式
- Day6 Python常用的模块
- Linux基础命令---e2fsck
- 出于迁移项目的考虑,GitHub 中 Fork 出来的项目,如何与原项目断开 Fork 关系?
- 补发9.27“天天向上”团队Scrum站立会议
- org.springframework.dao.CannotAcquireLockException解决
- cocostudio使用plist创建序列帧动画图片名称序列错乱的问题
- ActiveMQ+SpringMVC+Maven应用示例