在spring之前写过了springbean的一些基础属性:,
这里主要是对bean做一个详细的说明:
关于bean的设值注入:
需要先添加自定义标签:
关于延迟加载
在之前的java高级特性中,写过java单例模式 java单例模式的创建有两种方式
懒汉模式:需要用时才创建对象
饿汉模式:加载时就创建好了对象
在spring中,通过spring管理的bean对象,默认创建的就是单例模式,spring创建对象单例模式与原型模式在之前已经写过了, 就不再介绍,这里主要介绍spring中的延迟加载
关于实体的getset方法等不在详细描述,只截关键的图:
运行结果如下:
可以看出,在spring配置文件加载过程中,就创建好了学生的对象,那么使用延迟加载后:
在学生对象的类上添加注解Lazy,开启延迟加载,重新运行之前的方法:
可以很轻松的看出,spring默认的单例创建模式,是饿汉模式(即加载配置文件时,就将需要创建的bean对象创建好了,需要用时直接用)而添加了延迟加载的注解后,就变成了懒汉模式,即在加载spring时,类上有@Lazy注解的类表明是延迟加载,就不创建该对象了,当需要使用时,在创建对象。
关于构造方法自动装配
自动装配:@AutoWired,我们点开它的方法可以看到
@AutoWired可以使用在字段,属性,方法,构造方法等上面,我们平时使用的都是在字段上,这里写一下用在构造方法上时,
前期准备:一个Display接口,有一个show方法,LgDisplay和SanDisplay两个类实现Display接口,在定义一个cpu类,有一个work的方法
定义一个computer类:
按照以往我们应该是在字段上进行自动装配:
当类只有一个有参构造方法时,就可以自动装配构造方法。
测试: