Spring Bean

目录

1. Spring Bean核心功能

2. bean元素常用属性

3. Spring实例化bean的三种方式

4. SpringBean的作用域范围


1. Spring Bean核心功能

Spring框架的核心功能有两个:

1、Spring容器作为超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。

2、Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为"依赖注入"的方式来管理Bean之间的依赖关系。

2. bean元素常用属性

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

3. Spring实例化bean的三种方式

        1. 构造方法的方式

                Spring默认采用的是调用的无参构造方法来创建Bean 实例对象        

        2. 静态工厂的方式    

  •  创建一个工厂类

public class FruitFactory {
    public static IFruit createFruit(){
        return new Apple();
    }
}
  • 配置文件如下

<!--
    静态工厂方式创建bean对象
    class:工厂的类全名
    factory-method:静态工厂方法
-->
<bean id="apple" class="com.XXX.factory.FruitFactory" 
factory-method="createFruit" >  </bean>

        3.  实例工厂方式

这里还是用上面的工厂类

  • 配置如下,需要先创建工厂对象,然后再另一个bean中引用对象,再调用对象的方法

 <bean id="fruitFactory" class="com.XXX.factory.FruitFactory" > </bean> 

   工厂方式创建bean对象
   id:唯一标识
   class:返回的对象的类全名
   factory-bean:工厂对象的引用id
   factory-method:工厂中创建对象的实例方法
-->
   <bean id="apple" factory-bean="fruitFactory" factory-method="createFruit"/>

4. SpringBean的作用域范围

Spring通过scope属性用于设定 Bean 实例的作用域,其属性值有 :

  • singleton(单例 默认)

  • prototype(原型)

  • request、session

  • global Session。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值