首页 > 其他分享 >懒加载@Lazy

懒加载@Lazy

时间:2023-04-13 09:57:00浏览次数:24  
标签:Lazy person Person bean public 加载

默认情况下,Spring在程序启动时创建所有通过注解声明或者xml注解的单例bean,这样做好处是在启动时即可以检测所有可能的错误,而不是在运行的时候。但是有些情况我们需要的时候创建一个bean,而不是在程序启动的时候,此时需要用到@Lazy来进行懒加载。

懒加载主要针对单例bean,仅当第一次使用(获取)bean的时候才创建并初始化

示例1 普通加载方式

@Configuration
public class Cap4MainConfig {
    @Bean
    public Person person() {
        System.out.println("给容器添加person");
        return new Person("cap4", 15);
    }
}
public class Cap4Test {
    @Test
    public void test1() {
        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Cap4MainConfig.class);
        System.out.println("IOC容器创建完成");
        Person person = (Person) context.getBean("person");
    }
}

Cap4MainConfig使用@Configuration注解,服务启动时候就会自动加载。结果如下:

 

 

示例2 懒加载模式

@Configuration
public class Cap4MainConfig {
    @Bean
    @Lazy
    public Person person() {
        System.out.println("给容器添加person");
        return new Person("cap4", 15);
    }
}

结果如下,Person bean在服务启动时候并没有创建,只有在test方法调用的时候Person person = (Person) context.getBean("person")才创建person bean并放入到IOC容器中

 

 

 

 

参考文献: https://www.cnblogs.com/1963942081zzx/p/16822859.html

标签:Lazy,person,Person,bean,public,加载
From: https://www.cnblogs.com/enhance/p/17312293.html

相关文章

  • vue路由懒加载
    vue路由懒加载是性能优化考虑的一种策略。假如在router内需要引入一个component文件,importPrevCompfrom'./components/prev-comp'importNextCompfrom'./components/next-comp'这是常规的文件引入方式,这种方式下有用到和没有用到的文件都会被引入,增加资源加载性能消耗......
  • taro 3.0 官方模板运行报错 插件依赖 "@tarojs/plugin-platform-h5" 加载失败
    taroError:插件依赖"@tarojs/plugin-platform-h5"加载失败,请检查插件配置报错如下,原因:node版本的问题,使用nvm切换node版本就可以了......
  • 开源在线客服系统-客服系统历史消息记录功能-点击加载历史聊天记录-分页展示历史消息
    之前开发的开源在线客服系统gofly,访客端一直没有展示历史聊天记录,最近抽时间给加上了实现的效果就是,访客刚进聊天界面,如果存在历史记录,按5条分页,默认查询加载5条聊天记录。如果历史记录超过5条,顶部出现“点击加载更多”按钮,点击按钮就分页查询历史记录,堆入消息记录数组里。 ......
  • WPF 加载框
    加载框代码:<UserControlx:Class="WpfApp1.LoadingForm"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:mc=&q......
  • js加载的六种方式
    1.正常模式 <scriptsrc="index.js"></script> 这种情况下JS会阻塞dom渲染,浏览器必须等待index.js加载和执行完成后才能去做其它事情2.async模式<scriptasyncsrc="index.js"></script>async模式下,它的加载是异步的,JS不会阻塞DOM的渲染,async加载是无......
  • Android Kotlin实战之高阶使用泛型扩展协程懒加载详解
    前言:通过前面几篇文章,我们已基本掌握kotlin的基本写法与使用,但是在开发过程中,以及一些开源的API还是会出现大家模式的高阶玩法以及问题,如何避免,接下来讲解针对原来的文章进行一些扩展,解决大家在工作中遇到的问题,如何去解决如果还有人不了解kotlin,可以查看我的基础篇kotlin。Android......
  • 图片防盗链导致图片无法加载解决方法
    我们在博客的时候可能最烦心的就是图片处理了比如我在本地写好博客后把文章发布到博客园,或者CSDN或则和其他平台但是文章中用到的图片需要一个个手动上传,费时费力而且由于图片防盗链的存在,各博客平台上的图片资源又不能直接引用解决方案也很简单,只需要在博客中引入一下代码片......
  • sqlalchemy快速插入数据,scoped_session线程安全,加载类上的装饰器,基本增删改查,django中
    今日内容sqlalchemy快速插入数据sqlalchemy是什么orm框架,跟其他web框架没有必然联系,可以独立使用安装,快速使用,执行原生sql创建表和删除表不能创建数据库不能修改字段(增加,删除)使用orm插入第一步:生成engine对象engine=create_engine("mysql+pymysql://[email protected].......
  • 基于elementui的Tree虚线,实线绘制,以及懒加载,如图
     加减号用的是阿里的矢量图标库。自行去下载 路径:https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2 <template><divclass="content-box"><divclass="content-top-lable">系统设置</div><divstyle="padd......
  • Glide 加载圆角图片 CenterCrop
    /***加载圆角图片。并且充满屏幕*/funloadCropImageRadius(iv:ImageView,bkgColor:String?,radius:Int,path:String){valbitMap=ViewTool.createBmp4Rgb(bkgColor)valplaceholderDrawable=BitmapDrawable(iv.resources,bitMap......