Spring框架—③依赖注入DI、Bean作用域及自动装配

依赖注入

DI,Dependency injection
依赖: 指bean对象的创建依赖于Spring容器
注入: 指Bean对象所依赖的资源,由容器来设置和装配

在beans.xml中配置
1、常量注入

	<!--普通字段-->
	<bean id="user1" class="com.anye.pojo.User">
        <property name="name" value="anye"/>
    </bean>

2、Bean注入

<!--引用其他bean使用ref-->
<property name="address" ref="addr"/>

3、数组注入

		<property name="books">
            <array>
                <value>《三体》</value>
                <value>《超新星纪元》</value>
                <value>《球状闪电》</value>
                <value>《流浪地球》</value>
            </array>
        </property>

4、List注入

		<property name="hobbies">
            <list>
                <value>说唱</value>
                <value>电影</value>
                <value>游戏</value>
                <value>科幻</value>
            </list>
        </property>

5、Map注入

		<property name="card">
            <map>
                <entry key="IdCard" value="6666666888888884444"/>
                <entry key="StudyId" value="03163000"/>
            </map>
        </property>

6、set注入

        <property name="games">
            <set>
                <value>GTA5</value>
                <value>PUBG</value>
                <value>DOTA2</value>
                <value>deadcoming</value>
            </set>
        </property>

7、空值注入

        </property>
        <property name="worried">
            <null/>
        </property>

8、Properties注入

		<property name="card">
            <props>
                <prop key="StudentCard">03162000</prop>
                <prop key="IdCard">123456789012345678</prop>
            </props>
        </property>

拓展:
1、p命名空间注入
注意:需要导入对应的约束文件

	<!--p:property属性,命名空间注入-->
    <bean id="user5" class="com.anye.pojo.User" p:name="安月" p:age="18" p:sex=""/>

2、c命名空间注入

	<!--c:constructor构造器:命名空间注入-->
    <bean id="user6" class="com.anye.pojo.User" c:name="安夜" c:age="20" c:sex=""/>

Bean作用域及自动装配

  在Spring中,那些组成应用程序的主体及由SpringIOC容器所管理的对象,被称之为bean。简单地讲,bean就是由IOC容器初始化、装配及管理的对象。

配置文件中定义bean时,我们不仅可以配置Bean属性值及相互之间的依赖关系,还可以定义Bean的作用域。作用域会对Bean的生命周期和创建方式产生影响。

Bean的作用域类型:

类型说明
singleton在 Spring 容器中仅存在一个 Bean 实例, Bean 以单例的形式存在,默认值。
prototype每次从容器中调用 Bean 时,都会返回一个新的实例,即相当于执行 new XxxBean() 的实例化操作。
request每次 http 请求都会创建一个新的 Bean , 仅用于 WebApplicationContext 环境。request.setAttribute("","")
session同一个 http Session 共享一个 Bean ,不同的 http Session 使用不同的 Bean,仅用于 WebApplicationContext 环境。session.setAttribute("","")
globalSession同一个全局 Session 共享一个 bean, 用于 Porlet, 仅用于 WebApplication 环境。application.setAttribute("","")

Spring以容器的方式,使得我们仅需配置,即可的到天然的单例模式
在五种作用域中,request、session和globalSession三种作用域仅在web的应用中使用。

自动装配(了解)

自动装配的属性和引用的名称一样,可以使用自动装配

<!--自动装配,不建议使用,建议使用注解-->
<bean id="user" class="com.anye.dao.User" autowire="byName"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值