spring bean的作用域

bean作用域

scope:singleton | prototype

执行时机(产生bean的时机):

  • singleton:容器在初始化时,就会创建对象(唯一的一个对象),以后getBean()时,不再产生新的bean对象。
    singleton也支持延迟加载(懒加载):在第一次使用时产生对象。@Lazy
  • prototype:容器在初始化时,不创建对象,只是在每次使用(每次从容器中获取bean对象,getBean()),再创建对象,并且每次使用都创建一个新的对象

注解方式
@Scope用于指定bean作用域,默认是singleton
@Lazy表示延迟加载,在第一次使用时(getBean()时)产生bean对象
示例:

@Configuration
//@ComponentScan(value ={"org.lyh.controller","org.lyh.service"})
public class MyConfig {
    @Bean//bean的id就是方法名
    @Scope
    @Lazy
    public Student myStudent(){
        Student student = new Student(2,"李健康",21);
        student.setAddress(new Address("兰考县","商丘市睢阳区"));
        return  student;
    }
}

xml方式

scope用于指定bean作用域,默认是singleton
lazy-init="true"表示延迟加载,在第一次使用时(getBean()时)产生bean对象
示例:

 <bean id="student" class="org.lyh.entity.Student" scope="singleton" lazy-init="true">
    <!--<property name="stuNo" value="1"></property>-->
    <property name="stuNo" value="1"> </property>
    <property name="stuName" value="刘玉慧"> </property>
    <property name="stuAge" value="21"> </property>
    <property name="address" ref="address"> </property>
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值