前言
这里简单记录一下学习Spring全家桶的小知识点,可能会比较零碎。
内容
1、 对于Spring容器来说,当一个Bean
被@Component
标记后,它就会自动为我们创建ige单例(Singleton),即容器初始化时创建Bean,容器关闭前销毁Bean。在容器运行期间,我们调用getBean(Class)
获取到的Bean
总是同一个实例。
还有一种Bean
,我们每次调用getBean(Class)
,容器都返回一个新的实例,这种Bean
称为Prototype
(原型),它的生命周期显然和Singleton
不同。声明一个Prototype
的Bean
时,需要添加一个额外的@Scope
注解:
1 |
|
2、但一个第三方Bean不在package管理之内,例如ZoneId
,该如何创建它?
答案是我们自己在@Configuration
类中编写一个Java方法创建并返回它,注意给方法标记一个@Bean
注解:
1 |
|
Spring对标记为@Bean的方法只调用一次,因此返回的Bean仍然是单例。