Spring配置详解(Bean属性注入)

本文详细介绍了Spring框架中Bean的配置,包括Bean标签的id、class、scope等属性,以及Spring实例化Bean的三种方式:无参构造方法、静态工厂和实例工厂。此外,还深入探讨了Bean属性的注入,如set方法、有参构造、List、Set、Map、数组和Properties等类型的属性注入。
摘要由CSDN通过智能技术生成

1. Bean标签

  • id: Bean标签自定义名称,但不能使用特殊符号。在代码中可以根据id 值获取到对象
  • class:类的完全限定名(全路径)
  • scope
     |-- prototype 用户每次从IoC容器里面取对象,IoC容器都给调用者一个新的对象
     |-- singleton 这个对象在IoC容器中只会存在一个
     |-- request 在web项目同一个request里面只会创建一个对象
     |-- session 在web项目里面同一个session 共享一个对象
  • name:在springmvc 里面去指定controller的请求路径
  • lazy-init
     |-- 默认情况下启动程序时对象就直接创建了
     |-- 当加入lazy-init=“true” 之后使用者获取对象时才会创建

2. Spring 实例化Bean 的三种方式

1. 使用类中的无参构造方法

在这里插入图片描述
在User类中要有一个无参的构造方法,不然会创建bean失败

2. 使用静态工厂【了解】

  • 创建UserFactory
    在这里插入图片描述
  • 修改applicationContext.xml
    在这里插入图片描述

3. 使用实例工厂【熟悉—Activiti 要使用 】

  • 修改UserFactory
    在这里插入图片描述
  • 修改applicationContext.xml
    在这里插入图片描述

3. Bean属性的注入

1. 使用set方法注入

  • 创建Person
    在这里插入图片描述
  • 修改applicationContext.xml
    在这里插入图片描述

2. 使用有参构造方法

  • 创建person 的有参构造方法
    在这里插入图片描述
  • 修改applicationContext.xml
    在这里插入图片描述

3. List 集合属性注入

  • 创建Animal
    在这里插入图片描述
  • applicationContext.xml
<!-- 声明一个String -->
<bean id="str01" class="java.lang.String">
    <constructor-arg name="original" value="清远4"></constructor-arg>
</bean>
<!-- 声明一个User -->
<bean id="user" class="com.lasing.domain.User">
    <property name="id" value="2"/>
    <property name="name" value="lasing2"/>
    <property name="address" value="清远2"/>
</bean>
<!-- List集合的注入 -->
<bean id="animal" class="com.lasing.domain.Animal">
    <property name="strList">
        <list>
            <value>清远1</value>
            <value>清远2</value>
            <value>清远3</value>
            <ref bean="str01"/>
            <bean class="java.lang.String">
                <constructor-arg name="ortginal"  value="清远5"></constructor-arg>
            <<
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值