spring boot bean对象及注解

1.1)类的位置(必须放在启动类所在包以及子包)
1.2)类的描述(使用@Component注解)
2 )需要此对象的地方可从spring的bean池中获取
思考:
1)如何判定一个对象在何时创建? (日志,断点)
2)Spring容器中的Bean对象默认在启动时创建,但长时间又不使用这个对象,
你觉得先把对象创建出来好吗?(不好,占内存资源,由其是一些大对象)
3)Spring容器中的Bean对象假如不希望在容器启动时进行创建,该如何设计呢?(延迟加载)
@Bean:描述的方法会将返回值放入bean池,描述的类直接回放到bean池
@Bean注解通常会应用在一些配置类(由@Configuration注解描述)中,用于描述
具备返回值的方法,然后系统底层会通过反射调用其方法,获取对象基于作用域将对象
进行存储或应用。I
@Bean应用场景:第三方资源的整合及配置

@Lazy(value=true or false):描述类,延迟加载,(不希望启动时创建对象),value不写时默认为true,
true表示此对象要延迟构建及初始化,false为实时加载(和没有写这个注解是一样的效果)
@Component:描述类
@Scope:描述类时用于指定类实例的作用域,常用取值:
1)singleton (默认为单例作用域-类的实例在- - 个JVM内存中其实例只有一份,通常配合Lazy使用,一般可重用对象使用).
2)prototype (多 例作用域-此作用域对象为何时需要何时创建,spring框架不负责销毁,不可重用或只使用一次的对象)

@PostConstruct此注解描述的方法为生命周期初始化方法
在这样的方法中一般会为创建好的对象再此进行一些初始化.

@PreDestroy 此注解描述的方法为生命周期销毁方法,此方法会在对象销毁之前执行.
在这样的方法中可以实现一些,资源销毁操作 ,destray()

猜你喜欢

转载自www.cnblogs.com/syrgdm/p/13397167.html