019 使用@Lazy完成懒加载

一 .概述

我们知道单实例Bean在spring的IOC容器之中,单实例Bean会在容器启动之后进行创建.

我们可以使用@Lazy完成懒加载.



二 .测试

public class Person {
    public Person() {
        System.out.println("Person 正在创建中....");
    }
}
@Configuration
public class LazyConfig {

    @Bean
    @Lazy
    public Person person() {
        return new Person();
    }
}

测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes= {LazyConfig.class})
public class LazyTest {

    @Autowired
    private ApplicationContext context;

    @Test
    public void test() throws Exception {
        System.out.println(context);
        TimeUnit.SECONDS.sleep(3);
        System.out.println(context.getBean("person"));
    }
}

我们创建完IOC容器之后,线程休眠3秒,然后我们从IOC中获取对象,我们发现此时

才真正的创建Bean.

这样就完成了懒加载的功能.

原文地址:https://www.cnblogs.com/trekxu/p/9094868.html

时间: 2024-10-22 13:47:31

019 使用@Lazy完成懒加载的相关文章

lazy instantiator (懒加载、延迟实例化、延迟初始化)

最开始看斯坦福的视频,对 延迟初始化 这个概念,不太理解 只见到,有些属性的初始化是在init做的,有些是在viewDidLoad做的,有些是在属性的getter方法里面做的 所谓的 延迟初始化,就是在getter方法里面做,需要此属性时才加载 而init(各自view.model).viewDidLoad(viewcontroller)则是非延迟初始化 好处: 1.有些耗资源性能的属性,这样做可以节省资源 2.将初始化从viewDidLoad或init中剥离出来,这样能让代码更清晰 注意: 在

hibernate懒加载

16.懒加载 性能: 发出的sql语句越少,性能越高 方法: 1.懒加载 2.抓取策略 3.缓存策略 4.HQL语句   懒加载 1.类的懒加载 1.利用session.load方法可以产生代理对象 2.在session.load方法执行的时候并不发出sql语句 3.在得到其一般属性的时候发出sql语句 4.只针对一般属性有效,针对标示符属性是无效的 5.默认情况就是懒加载  2.集合的懒加载 <set name=""  lazy="" cascasd=&qu

Hibernate 性能优化之懒加载

针对数据库中的大数据,不希望特别早的加载到内存中,当用到它的时候才加载 懒加载分为:类的懒加载.集合的懒加载.单端关联的懒加载 类的懒加载    1.在默认情况下,类就是执行懒加载        2.只有使用了load方法以后才能用懒加载    3.如果在相应的映射文件中,设置<class>的lazy="false"懒加载将失去效果集合的懒加载     1.针对一多对的情况或者多对多的情况    2.根据一方加载set集合,决定在什么时候给set集合填充数据        

懒加载(延时存储属性)

格式: //这里只能使用var来创建变量 lazy var 变量: 类型 = { 创建变量代码 }() 使用: // ------------------------------------------------------------------------ // 1.懒加载的使用 lazy修饰 // 1.1 用到时再加载 // 1.2 多次使用,只创建一次 // 数组懒加载. 注意: 使用lazy实现懒加载,{}后面括号()不能省略 lazy var names : [String] =

(11)Hibernate懒加载

1.get.load方法区别? get: 及时加载,只要调用get方法立刻向数据库查询 load:默认使用懒加载,当用到数据的时候才向数据库查询. 2.懒加载(lazy) 2.1.概念 概念:当用到数据的时候才向数据库查询,这就是hibernate的懒加载特性. 目的:提升程序执行效率! 2.2.lazy属性的值 在Hibernate中,懒加载对应lazy属性的值. lazy属性的值 序号 值 含义 1 true 使用懒加载 2 false 关闭懒加载 3 extra 在集合属性(配置当中使用s

解决hibernate中的懒加载(延迟加载)问题

解决hibernate中的懒加载(延迟加载)问题 我们在开发的时候经常会遇到延迟加载问题,在实体映射时,多对一和多对多中,多的一样的属性默认是lazy="true"(即,默认是延迟加载), 如:<many-to-one name="parent" class="Department" column="parentId" lazy="true"/> 延迟加载表现在:比如:我们要查询id为2的部门数

mybatis中的懒加载

知识点:mybatis中的懒加载的使用 参考:https://www.cnblogs.com/ysocean/p/7336945.html?utm_source=debugrun&utm_medium=referral (1)什么是mybatis的懒加载 通俗的讲就是按需加载,我们需要什么的时候再去进行什么操作.而且先从单表查询,需要时再从关联表去关联查询,能大大提高数据库性能, 因为查询单表要比关联查询多张表速度要快. 在mybatis中,resultMap可以实现高级映射(使用associa

019 关联映射文件中集合标签中的lazy(懒加载)属性

<set>.<list>集合上,可以取值:true/false/extra,(默认值为:true) 实例一:(集合上的lazy=true(默认))class默认lazy=true(默认) session = HibernateUtils.getSession(); tx = session.beginTransaction(); //不会发出SQL语句 Classes classes = (Classes)session.load(Classes.class, 1); //发出SQ

tableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式

iOS---tableview加载图片的时候的优化之lazy(懒加载)模式and异步加载模式举个例子,当我们在用网易新闻App时,看着那么多的新闻,并不是所有的都是我们感兴趣的,有的时候我们只是很快的滑过,想要快速的略过不喜欢的内容,但是只要滑动经过了,图片就开始加载了,这样用户体验就不太好,而且浪费内存.这个时候,我们就可以利用lazy加载技术,当界面滑动或者滑动减速的时候,都不进行图片加载,只有当用户不再滑动并且减速效果停止的时候,才进行加载.刚开始我异步加载图片利用SDWebImage来做