Spring5.X的bean的scope作用域

    科技2022-07-11  76

    scope属性

    singleton:单例,默认值,调用getBean方法返回是同一个对象,实例会被缓存起来,效率比较高,当一个bean被标识为singleton时候,spring的IOC容器中只会存在一个该beanprototype:多例,调用getBean方法创建不同的对象,会频繁的创建和销毁对象造成很大的开销其他少用(作用于只在WebApplicationContext) request:每个Http请求都会创建一个新的beansession:每个Http Session请求都会创建一个新的beanglobal session(基本不用) <?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:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="video" class="net.cybclass.sp.domain.Video" scope="prototype"> <property name="id" value="9"></property> <property name="title" value="Spring5.X课程"></property> <!--<constructor-arg name="id" value="8"></constructor-arg>--> <!--<constructor-arg name="title" value="Spring5.X课程"></constructor-arg>--> <!--list 类型注入--> <!--<property name="chapterList">--> <!--<list>--> <!--<value>第一章SpringBoot</value>--> <!--<value>第二章Mybatis</value>--> <!--<value>第三章Spring</value>--> <!--</list>--> <!--</property>--> <!--<!–注入map–>--> <!--<property name="videoMap">--> <!--<map>--> <!--<entry key="1" value="SpringCloud课程层"></entry>--> <!--<entry key="2" value="面试宝典"></entry>--> <!--<entry key="3" value="JavaWeb课程"></entry>--> <!--</map>--> <!--</property>--> </bean> <bean id="VideoOrder" class="net.cybclass.sp.domain.VideoOrder" scope="singleton"> <property name="id" value="8"></property> <property name="oUtTradeNo" value="12312"></property> <property name="video" ref="video"></property> </bean> <!--<bean id="UserService" class="net.cybclass.sp.service.UserServiceImpl"></bean>--> <context:component-scan base-package="net.cybclass.sp.service"></context:component-scan> </beans>

     

    Processed: 0.009, SQL: 8