作为 Spring 核心机制的依赖注入,改变了传统的编程习惯,对组件的实例化不再由应用程序完成,转而交由 Spring 容器完成,在需要时注入应用程序中,从而对组件之间依赖关系进行了解耦。这一切都离不开 Spring 配置文件中使用的 元素。

Spring 容器可以被看作一个大工厂,而 Spring 容器中的 Bean 就相当于该工厂的产品。如果希望这个大工厂能够生产和管理 Bean,这时则需要告诉容器需要哪些 Bean,以及需要以何种方式将这些 Bean 装配到一起。

Spring 配置文件支持两种不同的格式,分别是 XML 文件格式和 Properties 文件格式。

通常情况下,Spring 会以 XML 文件格式作为 Spring 的配置文件,这种配置方式通过 XML 文件注册并管理 Bean 之间的依赖关系。

XML 格式配置文件的根元素是 ,该元素包含了多个 子元素,每一个 子元素定义了一个 Bean,并描述了该 Bean 如何被装配到 Spring 容器中。

定义 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" xmlns:p="http://www.springframework.org/schema/p"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.2.xsd"><!-- 使用id属性定义person1,其对应的实现类为com.mengma.person1 --><bean id="person1" class="com.mengma.damain.Person1" /><!--使用name属性定义person2,其对应的实现类为com.mengma.domain.Person2--><bean name="Person2" class="com.mengma.domain.Person2"/>
</beans>

在上述代码中,分别使用 id 和 name 属性定义了两个 Bean,并使用 class 元素指定了 Bean 对应的实现类。

元素的常用属性

属性名称 描述
id 是一个 Bean 的唯一标识符,Spring 容器对 Bean 的配置和管理都通过该属性完成
name Spring 容器同样可以通过此属性对容器中的 Bean 进行配置和管理,name 属性中可以为 Bean 指定多个名称,每个名称之间用逗号或分号隔开
class 该属性指定了 Bean 的具体实现类,它必须是一个完整的类名,使用类的全限定名
scope 用于设定 Bean 实例的作用域,其属性值有 singleton(单例)、prototype(原型)、request、session 和 global Session。其默认值是 singleton
constructor-arg 元素的子元素,可以使用此元素传入构造参数进行实例化。该元素的 index 属性指定构造参数的序号(从 0 开始),type 属性指定构造参数的类型
property 元素的子元素,用于调用 Bean 实例中的 Set 方法完成属性赋值,从而完成依赖注入。该元素的 name 属性指定 Bean 实例中的相应属性名
ref 和 等元素的子元索,该元素中的 bean 属性用于指定对 Bean 工厂中某个 Bean 实例的引用
value 和 等元素的子元素,用于直接指定一个常量值
list 用于封装 List 或数组类型的依赖注入
set 用于封装 Set 类型属性的依赖注入
map 用于封装 Map 类型属性的依赖注入
entry 元素的子元素,用于设置一个键值对。其 key 属性指定字符串类型的键值,ref 或 value 子元素指定其值

Spring Bean的配置及常用属性相关推荐

  1. Spring——Bean管理-xml方式进行属性注入

    目录 一.xml方式创建对象 二.xml方式注入属性 第①种方式注入:set方法注入 第②种方式注入:有参构造函数注入 constructor-arg:通过构造函数注入 用name标签属性: 不按照顺 ...

  2. Spring - Bean注解配置光速入门

    Bean注解配置光速入门 步骤一: 创建 web 项目,引入 Spring 的开发包 在 Spring 的注解的 AOP 中需要引入 spring-aop 的 jar 包 步骤二: 引入相关配置文件 ...

  3. Spring Bean默认配置为单实例 Spring Bean生命周期

    2019独角兽企业重金招聘Python工程师标准>>> Spring 的Bean默认的是单例的. 如果不想单例需要如下配置: <bean id="user" ...

  4. Javaspring 7-13课 Spring Bean

    Javaspring的灵魂,就在于bean的灵活运用.作为Spring核心机制的依赖注入,改变了传统的编程习惯,对组件的实例化不再由应用程序完成,转而交由Spring容器完成,在需要时注入应用程序中, ...

  5. Spring Bean配置方式之一:Java配置

    简介: Spring bean 是使用传统的 XML 方法配置的.在这篇文章中,您将学习使用基于纯 Java 的配置而非 XML 来编写 Spring bean 并配置它们.本文将介绍可用来配置 be ...

  6. Spring Bean的三种配置方式

    目录 一.传统的XML配置方式 二.基于java注解的配置 三.基于类的Java Config 正文 Spring Bean有三种配置方式: 传统的XML配置方式 基于注解的配置 基于类的Java C ...

  7. Spring Bean的一生

    本文来详细说下Spring Bean相关的知识与内容 文章目录 基本概念 Spring容器启动流程 容器初始化过程 容器刷新过程 Spring应用上下文启动准备阶段 BeanFactory创建阶段 B ...

  8. spring bean作用域_Spring面试知识点,这是我见过最全面的 - 知识铺

    知识铺: 致力于打造轻知识点,持续更新每次的知识点较少,阅读不累.不占太多时间,不停地来唤醒记忆深处的知识点. Q1.什么是Spring框架? Spring是最流行的企业应用程序框架之一.Spring ...

  9. Spring Bean装配(上)

    Bean:在spring的IOC里面,把配置到IOC容器里面的实体或者是对象都称为Bean Bean配置项 Bean的作用域 Bean的生命周期 Bean的自动装配 Resources&Res ...

最新文章

  1. node第三方登陆github(express)
  2. AngularJS学习篇(十)
  3. java 18 -4 LinkedHashMap集合
  4. Linux系统下Configure命令参数解释说明
  5. 收集21个经典Java面试题
  6. 电脑重启bootmgr_电脑系统启动:显示0xc0000428怎么办
  7. python类的构造方法是_Python类中属性和构造方法的区别?
  8. C++常识之——C++中堆和栈的区别,自由存储区、全局/静态存储区和常量存储区...
  9. python字典常见操作
  10. 《刺杀骑士团长》读后感
  11. my android机器人作文,机器人作文400字
  12. 阿铭Linux_公有云学习笔记20190116
  13. [SPOJ] COT2 树上莫队
  14. java中图片排版_Java实现第八届蓝桥杯图形排版
  15. C++“读取“大量数据时--快读
  16. Git-回退到指定版本
  17. 我用24次离职,换来6条血一样的教训
  18. Velo项目评级:BB,展望稳定 | TokenInsight
  19. PLC控制技术与组态技术实训装置
  20. 自动驾驶系统入门(一) - 环境感知

热门文章

  1. python io操作有什么_Python笔记:文件IO操作
  2. Chrome浏览器最新改版 Android P预览版和桌面版界面有变化
  3. SVN创建不了资源库位置 解决方案
  4. JS闭包的简单理解。优缺点以及垃圾回收机制
  5. Java基础篇3——流程控制
  6. php与mysql手册下载地址_PHP与Mysql的连接
  7. sqldataadapter.fill 索引超出了数组界限_小学生学习C++||第十五节 数组
  8. 06 - java 方法
  9. 动态规划算法之数塔问题
  10. java内部类练习题,学习笔记——Java内部类练习题