java中的bean对象,关于java:如何理解Spring框架中的Bean对象

Bean对象的定义?

在Spring框架中由Spring创立和治理的对象的对象称之为Bean对象。

Bean对象的个性?

Spring框架为了更加迷信的治理和利用Bean对象,为其设计相干个性,例如:懒加载、作用域以及生命周期办法。

懒加载(Lazy)

在Spring框架中,默认会在启动时会创立所有的Bean对象,但有些bean对象如果长时间不必,启动时就创建对象,会占用其内存资源,从而造成肯定的资源节约,此时咱们能够基于懒加载策略提早对象的创立,在设计类时,在类上增加@Lazy注解,例如:

package com.cy.pj.common.pool;

@Component

@Lazy

public class ObjectPool {

public ObjectPool() {

System.out.println("ObjectPool()");

}

}

其中,@Lazy注解中有一个value属性,其默认值为true示意提早加载。

作用域(Scope)

Spring框架创建对象当前,能够给对象一个作用域,目标是让对象在肯定范畴内能够进行重用,罕用有单例(singleton)和多例(prototype)两种,其中:

singleton:此作用域指的是,名字和类型雷同的Bean对象实例在整个Spring容器中只能一份。此实例何时创立与类的提早加载个性配置无关,此实例创立当前,生命周期会由spring框架治理。

prototype:此作用域指的是,每次从Spring容器获取对象都会创立新实例,此实例会在须要时创立与lazy个性无关,这个实例创立当前,spring能够对其初始化,但不负责销毁。

基于注解@Scope形式设定Bean作用域,代码演示:

package com.cy.pj.common.pool;、

@Lazy

@Scope("singlton")

@Component

public class ObjectPool {

public ObjectPool() {

System.out.println("ObjectPool()");

}

}

Spring中默认bean对象的作用域为singleton,如果心愿是prototype能够应用@Scope(“prototype”)

生命周期办法

程序中每个对象都有生命周期,但不是每个对象类型定义时,都要定义生命周期办法,当一个Bean对象创立当前如果还需执行额定初始化,销毁之前也须要额定的其它资源的开释,Spring框架能够为类定义其生命周期办法。如果是注解形式,咱们能够采纳如下两个注解进行实现。

@PostConstruct 注解用于形容bean对象生命周期办法中的初始化办法,此办法会在对象的构造方法之后执行(是对象创立当前的初始化)。

@PreDestroy 注解用于形容Bean对象生命周期办法中的销毁办法,此办法会在对象销毁之前执行(当作用域为prototype时,此办法不会执行)。

代码演示:

package com.cy.pj.common.pool;、

@Lazy

@Scope("singlton")

@Component

public class ObjectPool {

public ObjectPool() {

System.out.println("ObjectPool()");

}

@PostConstruct

public void init() {

System.out.println("init()");

}

@PreDestroy

public void close() {

System.out.println("close()");

}

}

个别池对象都会设置一些生命周期办法,例如连接池。

总结(Summary)

本大节次要对Spring框架中的Bean对象个性做了一个概要剖析,能够通过这个剖析理解Spring框架是如何迷信利用bean对象的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值