Spring注解开发—— 5、组件注册-@Scope-设置组件作用域

5、组件注册-@Scope-设置组件作用域

IOC容器默认都是单实例的

package com.suirui.springanno.config;

import com.suirui.springanno.entity.Person;
import org.springframework.context.annotation.*;

@Configuration  //告诉Spring这是一个配置类
public class MainConfig2 {

    @Bean("person") //给容器注册一个bean,类型为返回值类型,id默认是方法名,可以通过注解value替换名称
    @Scope("singleton")//默认单例
    public Person person() {
       return  new Person("张三",28);
    }

}
    /**
     * * {@link ConfigurableBeanFactory#SCOPE_SINGLETON SCOPE_SINGLETON}.
     * * @since 4.2
     * * @see ConfigurableBeanFactory#SCOPE_PROTOTYPE
     * * @see ConfigurableBeanFactory#SCOPE_SINGLETON
     * * @see org.springframework.web.context.WebApplicationContext#SCOPE_REQUEST
     * * @see org.springframework.web.context.WebApplicationContext#SCOPE_SESSION
     * * @see #value
     * <p>
     * <p>
     * prototype 多实例的
     * singleton 单实例的 默认值
     * request 同一个请求创建一个实例(WEB环境)
     * session 同一个session创建一个实例(WEB环境)
     *
     * @return
     */
    @Scope("prototype") // 多实例
  • prototype 多实例的 IOC容器启动的时候不会创建Bean,每次获取的时候才会去创建Bean
  • singleton 单实例的 默认值 IOC容器启动就会调用方法创建Bean,以后每次就是直接从容器(map.get)中拿
  • request 同一个请求创建一个实例(WEB环境)
  • session 同一个session创建一个实例(WEB环境)
  • 等同于xml
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值