spring注解@scope

@Scope注解的value属性有四个值,分别是singleton、prototype、request、session,value属性的值也可以直接用字符串,不用向我一样获取他们的值。

@Configuration
public class MainConfig2 {

//    @Scope(value = WebApplicationContext.SCOPE_REQUEST)//request
//    @Scope(value = WebApplicationContext.SCOPE_GLOBAL_SESSION)//session
//    @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)//prototype
    @Scope(value = ConfigurableBeanFactory.SCOPE_SINGLETON)//singleton
    @Bean(name = "person")
    public Person person(){
        Person person = new Person();
        person.setName("lqf");
        person.setEmail("lqf@163.com");
        return person;
    }

}

singleton:1、默认值,创建的bean是单实例的 ,当使用以下代码从IOC容器中获取bean时,打印的值是true,

                        也就是两个bean的对象其实是同一个。

                  2、单实例bean会在IOC容器被创建时就创建

                  3、springmvc的controller使用单例

        Person person = applicationContext.getBean(Person.class);
        Person person1 = applicationContext.getBean(Person.class);
        System.out.println(person == person1);

 prototype:1、多实例的,每一次获取bean的对象都会重新创建实例,上面代码返回的值就会使false。

                    2、多实例bean不会再IOC容器创建时被创建,在获取bean的时候创建

                    3、struts2的controller使用多实例创建

request:每一次请求创建一个对象

session:每一次回话创建一个对象

request和session是在web容器中使用的,不会用到

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值