spring Bean Scopes(作用域)

本文详细介绍了Spring框架中Bean的作用域,包括Singleton、Prototype、Request和Session,以及它们的实例化时机。同时,讲解了Bean的生命周期,包括初始化、服务及销毁过程,并展示了如何指定初始化和销毁方法。此外,还探讨了Spring的自动装配特性,如byName、byType和constructor等自动装配方式,以及如何配置和使用。
摘要由CSDN通过智能技术生成

spring Bean Scopes(作用域)

         参考官方文档 1.5Bean Scopes
        1、Singleton :单例模式(默认):一个Spring容器中只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例。
                ①:在容器启动的时候创建对象
        2、Prototype :多例模式,每次调用新建一个Bean的实例。
                ②:在每次获取的时候创创建对象
        3、Request:Web项目中,给每一个http request新建一个Bean实例。
        4、Session:Web项目中,给每一个http session新建一个Bean实例。
<bean id="dog" class="com.zking.springdemo.scope.Dog" scope="singleton"></bean>
<bean id="dog2" class="com.zking.springdemo.scope.Dog" scope="prototype"></bean>

spring bean LifeCycle(生命周期)

        指定初始化和销毁方法

        1、bean的生命周期

                ①:bean的创建,初始化,销毁的过程;

        2、参考servlet的生命周期 实例化,初始化,服务,销毁

                ①:容器管理bean的生命周期

                ②:我们也可以自定义初始化和销毁方法;容器在bean进行当前生命周期的时候来调用我们自定义的初始化和销毁方法

                ——指定init-method和destroy-method方法

        3、bean的生命周期

                ①:构造(对象创建)

                        ①)①):单实例

                        ①)②):多实例

        4、初始化

                ①:对象创建完成,并赋值好,调用初始化方法

                ②:销毁

                        ②)①):单实例:容器关闭的时候

                        ②)②):多实例:容器不会管理这个bean;容器不会调用销毁方法;

InitializingBean和DisposableBean

        InitializingBean
        DisposableBean

Spring bean自动装配

        参考官方文档: 1.4.5. Autowiring Collaborators
        依赖注入的本质是装配,装配是依赖注入的具体行为
         spring可以在上下文中自动寻找,并自动给bean装配属性。
                 1、自动装配四种方式
                        ①:none:不自动装配(默认)
                        ②:byName :会自动在容器上下文中,通过setXxx方法中的xxx去查找相同id的bean
                        ③:byType :会自动在容器上下文中,通过对象属性类型相同的bean
                        ④:constructor:构造方法根据类型自动装配
                2、自动装配配置方式
                        ①:全局配置default-autowire
                        ②:局部配置autowire
​
<beans xmlns="Index of /schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="Index of /schema/beans
https://www.springframework.org/schema/beans/spring-beans.xsd"
default-autowire="byType">
<bean id="userDao" class="com.zking.springdemo.dao.impl.UserDaoImpl"></bean>
        <bean id="userDao2" class="com.zking.springdemo.dao.impl.UserDaoOracleImpl"></bean>
        <bean id="userService" class="com.zking.springdemo.service.impl.UserServiceImpl" autowire="byType">
</bean>
</beans>
​
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值