Springboot注解 - @Lazy和@Scope

springboot注解说明:

  1. 默认情况下 spring 容器中都是单实例。
  2. @Lazy注解
    1. value=false:默认在容器启动的时候创建对象
    2. value=true:懒加载:容器启动不创建对象。第一次使用(获取)Bean创建对象,并初始化  
  3. @Scope注解
    1. prototype:多例。IOC容器启动并不会去调用方法创建对象放在容器中。每次获取的时候才会调用方法创建对象;
    2. singleton:单例。IOC容器启动会调用方法创建对象放到ioc容器中。 以后每次获取是直接从容器(map.get())中拿,全局有且仅有一个实例 

下面进行一些单元测试,说明@Lazy注解、@Scope注解和@Lazy与@Scope混用的结果。

一、@Lazy注解

  1、测试@Lazy(value = true)。@Lazy的value默认值就是等于true,所以这句其实应该写成@Lazy即可,这里为便于理解,所以写了完整语句。

  测试类

1 @Configuration
2 public class NoScopeLazyTrue{
3     @Bean
4     @Lazy
5     public NoScopeLazyTrue NoScopeLazyTrue(){
6         System.out.println("向spring容器中添加NoScopeLazyTrue类");
7         return new NoScopeLazyTrue();
8     }
9 }

  单元测试

/**
 * 测试条件:@Lazy=true 不写@Scope注解
 * 测试期望结果:NoScopeLazyTrue在spring后加载
 */
@Test
public void LazyTrueTest(){
    AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(NoScopeLazyTrue.class);
    System.out.println("spring容器初始化完成");
    NoScopeLazyTrue noScopeLazyTrue = (NoScopeLazyTrue) ac.getBean("NoScopeLazyTrue");
}

  单元测试结果

  

原文地址:https://www.cnblogs.com/jiang27/p/12551727.html

时间: 2025-01-04 15:33:05

Springboot注解 - @Lazy和@Scope的相关文章

springboot报错,springboot注解

目录 SpringBoot注解 SpringBoot注解 一.注解(annotations)列表 @SpringBootApplication: ? 包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让Spring Boot扫描到Configuration类并把它加入到程序上下文. @Configuration:等同于Spring的XML配置文件:使用Java代码可以检查类型安全. @Enabl

SpringBoot注解大全(转)

原文链接:[springBoot系列]--springBoot注解大全 一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文. @Configuration 等同于spring的XML配置文件:使用Java代码可以检查类型安全. @E

SpringBoot注解大全 转

一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文. @Configuration 等同于spring的XML配置文件:使用Java代码可以检查类型安全. @EnableAutoConfiguration 自动配置. @Compon

SpringBoot注解最全详解

一.注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文. @Configuration 等同于spring的XML配置文件:使用Java代码可以检查类型安全. @EnableAutoConfiguration 自动配置. @Compon

Springboot 注解详解

springboot是spring公司开发一套快速搭建javaWeb项目的框架,其最大的特点就是简便快捷,简化了Spring项目大量的配置文件,其核心思想就是约定大于配置,而注解这种简便快捷的方式自然成为不二选择,下面总结了springboot中一些常用的注解,以后也会持续更新加入新的注解,当然对于@Controller @RequestMapping 这种太过常见的就不再举例了. (一)参数类 [email protected]    属性  value = "name",requi

SpringBoot注解分析解释

使用注解的优势: 1.采用纯java代码,不在需要配置繁杂的xml文件 2.在配置中也可享受面向对象带来的好处 3.类型安全对重构可以提供良好的支持 4.减少复杂配置文件的同时亦能享受到springIoC容器提供的功能 一.注解详解(配备了完善的释义)------(可采用ctrl+F 来进行搜索哦~~~~) @SpringBootApplication:申明让spring boot自动给程序进行必要的配置,这个配置等同于: @Configuration ,@EnableAutoConfigura

12、springboot注解

@RestController和@Controller import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.springfram

springBoot注解大全

? 一.注解(annotations)列表 @SpringBootApplication: 包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文. @Configuration 等同于spring的XML配置文件:使用Java代码可以检查类型安全. @EnableAutoConfiguration 自动配置. @Com

阿里架构师用一篇文章带你详解SpringBoot注解

一.注解(annotations)列表@SpringBootApplication:包含了@ComponentScan.@Configuration和@EnableAutoConfiguration注解.其中@ComponentScan让Spring Boot扫描到Configuration类并把它加入到程序上下文. @Configuration 等同于spring的XML配置文件:使用java代码可以检查类型安全. @EnableAutoConfiguration 自动配置. @Compone