Spring注解学习之:@Scope,@Lazy,@Conditional

本文介绍了Spring框架中三个重要的注解:@Scope用于改变bean的作用域,@Lazy实现延迟加载,@Conditional根据条件创建bean。通过测试案例详细解析了每个注解的效果,例如@Scope的singleton和prototype区别,@Lazy如何实现单例延迟加载,以及@Conditional如何根据操作系统创建不同的bean。
摘要由CSDN通过智能技术生成

1、@Scope

首先,有一点需要说明,在SpringIOC容器中,所有注册的bean(controller,service,dao,....),默认情况下都是单实例的,及singleton;那有哪些作用域,分别什么意思?如下表:

作用域 解释说明
singleton 单实例,在创建IOC时,bean就会被创建,而且只会创建一次,以后都会直接使用该创建对象,相当于map.get();注意:在IOC容器创建的时候,就已经创建好了bean;
prototype 多实例,在创建IOC时,bean不会被创建,只有当bean的创建方法被调用时,才会创建,而且每次调用,每次创建;
request 同一个请求时,创建一次;
session 同一个session,创建一次;

spring提供可以通过@Scope来对bean的作用域进行修改,相当于配置文件中<bean>标签的scope属性,@Scope的取值有singleton,prototype,request以及session,含义如上表;如果不指定,默认为singleton;

做个测试看一下:

测试一,不写@Scope,或者写了@Scope,不指定内容

1、Myconfig

@Configuration
public class MyConfig {

    @Bean
    @Scope
    public Student student(){
        System.out.println("创建student开始");
        return 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值