今天主要从以下几方面来介绍一下@Lazy注解
-
@Lazy注解是什么
-
@Lazy注解怎么使用
1,@Lazy注解是什么
@Lazy注解用于标识bean是否需要延迟加载,源码如下:
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Lazy {
/**
* Whether lazy initialization should occur.
*/
boolean value() default true;
}
只有一个参数,默认是true,也就是说只要加了这个注解就会延迟加载
2,@Lazy注解怎么使用
没加注解之前主要容器启动就会实例化bean,如下:
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
创建user实例
而加上@Lazy注解则必须在第一次调用的时候才会加载如下:
/**
* 定义一个bean对象
* @return
*/
@Scope
@Lazy
@Bean(value="user0",name="user0",initMethod="initUser",destroyMethod="destroyUser")
public User getUser(){
System.out.println("创建user实例");
return new User("张三",26);
}
AnnotationConfigApplicationContext applicationContext2 = new AnnotationConfigApplicationContext(MainConfig.class);
User bean2 = applicationContext2.getBean(User.class);
创建user实例
实例1 === User [userName=张三, age=26]
@Lazy注解注解的作用主要是减少springIOC容器启动的加载时间
以上是今天文章的所有内容,欢迎大家吐槽
更多优质文章请关注以下公众号查阅:
相关推荐
Spring注解之@Lazy注解使用解析 @Lazy注解是Spring框架中的一种注解,用于指定Bean的预初始化行为。该注解可以修饰Spring Bean类,用于指定该Bean是否取消预初始化。在使用该Annotation时,可以指定一个boolean型的...
注解包含: 拦截器 , 过滤器 , 序列化 , @After , @AfterReturning , @AfterThrowing , @annotation , @Around , @Aspect , @Autowired , @Bean , @Before , @Component , @ComponentScan , @ComponentScans , @...
`@Lazy`注解允许你标记一个bean为懒加载。这意味着bean只有在实际被请求时才会初始化,而不是在容器启动时就创建。 5. **@Autowired** 自动装配是Spring的一个重要特性,`@Autowired`注解用于自动将依赖注入到...
#### 一、Spring注解驱动概述 Spring框架通过引入注解支持,极大地简化了Java EE应用的开发工作。它不仅提供了基础的依赖注入功能,还增强了对组件扫描的支持,使得开发者能够更加灵活地管理应用程序的结构与生命...
1. `@Component`:这是所有Spring注解的基础,用于标记一个类为Spring的Bean。通过`@Component`,我们可以将任何Java类注册到Spring容器中,使得Spring能够管理这个类的生命周期。 2. `@Service` 和 `@Repository`...
在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心特性,它允许我们解耦组件,使得代码更易于测试和维护。`@Autowired`和`@Bean`是两个关键注解,它们在实现DI时起着重要作用。让我们深入探讨这两个...
Spring Boot 2.2引入了一个新的配置项`spring.main.lazy-initialization`,将其设置为`true`即可开启全局懒加载。在`application.properties`或`application.yml`中添加如下配置: ```properties # application....
在现代Java Web开发中,Spring、SpringMVC和Hibernate是三个非常重要的框架,它们共同构建了一个强大的、灵活的和高效的应用程序开发环境。基于Spring+SpringMVC+Hibernate的全注解开发,允许开发者摆脱传统的XML...
`@Autowired`注解是Spring中最常用的依赖注入注解之一,它能够自动地将Bean容器中的Bean按照类型匹配的方式注入到目标对象中。当一个类中有多个相同类型的Bean时,可以结合`@Qualifier`注解来指定具体的Bean。 示例...
本文将深入解析Spring中最常用的七大注解:`@Required`、`@Autowired`、`@Qualifier`、`@Configuration`、`@ComponentScan`、`@Lazy`和`@Value`,以及它们在实际开发中的应用。 1. **@Required** `@Required`注解...
综上所述,SSH2框架的全注解开发是一种高效、灵活的开发方式,它结合了Struts2的MVC处理、Spring的依赖管理和事务控制以及Hibernate的ORM和延迟加载机制,为Java Web应用提供了强大的支撑。通过学习和掌握这些知识点...
* 解释:@Configuration 是 Spring 框架中一个非常重要的注解,用于定义一个配置类,该类将被 Spring 容器管理。 @Scope * 作用:用于指定 scope 作用域的,通常用在类上。 * 解释:@Scope 注解用于指定 Bean 的...
Spring MVC 是一个强大的Java web开发框架,用于构建可维护、可扩展且松散耦合的Web应用程序。在本文中,我们将深入探讨Spring MVC中的各种注解,这些注解对于理解和使用Spring MVC至关重要。 1. **@Service**: 这...
本文将深入探讨Spring注解及其在实际开发中的应用。 1. **依赖注入(Dependency Injection, DI)注解** - `@Autowired`: 自动装配依赖,Spring会根据类型或属性名自动找到合适的bean进行注入。 - `@Qualifier`: ...
在上面的代码中,我们使用了@Lazy注解来延迟加载RedisUtil依赖项,并且使用@Autowired注解来注入依赖项。由于属性的保护级别是protected,所以子类可以直接访问和使用该属性。 使用这种方法,我们可以轻松地将依赖...
本资源提供了Spring 5.1.x版本的源码详细注解,旨在帮助开发者深入理解Spring框架的核心功能,包括IOC(Inversion of Control)容器、懒加载(lazy-init)、循环依赖处理、AOP(Aspect Oriented Programming)实现...
@Basic(fetch=FetchType.LAZY):此注解用于指定属性的加载策略,FetchType.LAZY表示延迟加载,即只有在真正需要时才会从数据库加载数据。 @JsonIgnore:此注解用于在进行JSON序列化时忽略指定的属性。 @JoinColumn...
- 当`@Resource`注解在字段上时,Spring支持晚期初始化(lazy-init),即bean在第一次被请求时才初始化。 - 对于多模块项目,`@Resource`注解可能需要配合`@ComponentScan`或者`@ImportResource`来确保Spring能找到...
@Lazy注解则表示这个Bean的实例化是延迟的,直到第一次使用时才创建。这样的组合使用通常是为了满足特定的配置需求或者优化Bean的生命周期管理。 通过对SpringCloud源码的解析,以及对相关注解的深入理解,开发者...
这是Spring的核心特性之一,允许我们通过配置或注解将对象之间的依赖关系明确地定义出来,而不是硬编码在代码中。在Spring 4.3中,DI的实现更加灵活和高效。例如,`@Autowired`注解可以自动装配bean,而`@Qualifier`...