java懒加载注解_一分钟学习Spring注解之懒加载@Lazy

df086f34f670b38c0b74c06dfcbb3d95.png

先声明: 本篇文章非常简单属于一分钟学会使用系列,不深入讲解原理,如果要学习源码,可以看小编Spring源码解析系列

什么是懒加载?懒加载就是不使用不加载,使用的时候才去加载! Spring默认不是懒加载,而是启动加载,就在Spring上下文启动时候就去加载,这样有一个坏处是导致启动时间过长。好处就是当第一次访问Bean时候速度相对快一丢丢。因为项目启动Bean就加载好了,而不是调用时候才加载。(效果不明显,一般使用默认)

Spring中有两种配置方法,你更喜欢哪种呢?

两种配置方法

一.xml配置文件 Bean标签的lazy属性

>

>

>

二.是@lazy注解@Target({ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER, ElementType.FIELD})

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface Lazy {

/**

* 默认为懒加载

*/

boolean value() default true;

}@Configuration

public class BeanConfig {

//配置为非懒加载

@Lazy(value = false)

@Bean(name = {"hw","helloWorld"},autowire = Autowire.BY_NAME,initMethod = "initMethod",destroyMethod = "destroy")

public HelloWorld helloWorld(){

return new HelloWorld("@Bean注解创建");

}

}

验证

验证下是否是在Spring上下文启动时候就去加载。

我们预测lazy = false 或者是默认的情况下会在上下文加载时候就执行初始化方法。/**

* 什么是懒加载?

* 懒加载不使用不加载,使用的时候才去加载!

* 两种配置方法

* xml配置文件中bean标签的lazy属性

* @Lazy注解

* @param args

*/

public static void main(String[] args) {

new ClassPathXmlApplicationContext("classpath:spring-lazy.xml");

// 控制台打印

//init-method:这是一个nolazy的bean

//init-method:这是一个未决的的bean

}

d78db3df456a1c49b475abb6c22e644e.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值