spring常用注解

今天看新工程项目时发现这个注解@Lazy,不明白其意,遂网上搜索,结合实际业务明白了,记录如下。
@Lazy该注解用于标识bean是否需要延迟加载。
通常我们希望某些类在容器启动的时候变将其实例化,实现如下

1@Bean 2public User getUser(){ 3 return new User("zhangsan",28); 4 }

但有些时候,我们希望某些类在使用的时候才被实例化,于是用到了@Lazy注解,实现如下 

1@Lazy 2@Bean 3public User getUser(){ 4 return new User("zhangsan",28); 5 }

说明:加上@Lazy注解之后,实现类只会在第一次调用该类时被加载。该注解的作用主要是减少springIOC容器启动的加载时间。

点赞
收藏

评论区

加载中...

相关推荐

spring源码解析

前言上篇我们介绍了spring容器加载的方式,并重点介绍了基于xml配置解析和注解扫描两种容器加载的方式,封装和注册beandefinition的过程。今天我们分享BeanDefinition注册后的另一个重要过程bean的实例化过程的源码。容器加载流程!spring源码解析spring容器加载源码(bean实

spring注解

随着越来越多地使用Springboot敏捷开发,更多地使用注解配置Spring,而不是Spring的applicationContext.xml文件。Configuration注解:Spring解析为配置类,相当于spring配置文件Bean注解:容器注册Bean组件,默认id为方法名@Configurat

java 成神之路 (二)

前一篇博客介绍了如何通过注解反射来实例化一个对象。前面提出的一个优化建议。上一版本,每个含有@DAL(http://my.oschina.net/daL)注解的变量都会通过反射去得到实例化对象。要是同一个工程里面每次都对同一个类通过反射实例化一个对象出来,这样太浪费资源了。现在我们就模拟spring的bean工厂,

Springboot中如何在Utils类中使用@Autowired注入bean

Springboot中如果希望在Utils工具类中,使用到我们已经定义过的Dao层或者Service层Bean,可以如下编写Utils类:1\.使用@Component注解标记工具类StatisticsUtils:2\.使用@Autowired(@Autowired和@Resource的区别不再介绍)注入我们需要的bean:3\.在工具类中

@Repository、@Service、@Controller 和 @Component

@Repository、@Service、@Controller(https://my.oschina.net/u/1774615)和@Component将类标识为Beanspring自2.0版本开始,陆续引入了一些注解用于简化Spring的开发。@Repository注解便属于最先引入的一批,它用于将数据访问层(DAO层)的类

Bean 实例化和获取

实例化BeanSpring实例化bean的时机有两个:1.IOC容器启动时候;2.真正调用的时候;如果bean声明为scopesingleton且lazyinitfalse,则容器启动时候就实例化该bean(Spring默认就是此行为)。否则在调用时候再进行实例化。IOC容器