Spring 默认创建单例 Bean
在 Spring Boot 中,你可以使用 YAML 配置文件(.yml
或 .yaml
扩展名)来定义 Bean 的作用域。要将一个 Bean 配置为多例(prototype)作用域,你需要使用 application.yml
文件,并按照以下格式进行配置:
spring:
beans:
myPrototypeBean:
class: com.example.MyPrototypeBean
scope: prototype
在这个例子中,myPrototypeBean
是一个类为 com.example.MyPrototypeBean
的 Bean,它的作用域被设置成了 prototype
,这意味着每次当你请求这个 Bean 时,Spring 都会创建一个新的实例。
另外,如果你的应用程序中已经有一个 @Configuration
类,你也可以在这个类中使用 @Bean
方法来创建一个多例的 Bean,并且不需要在 YAML 文件中进行任何配置。只需按照之前提到的 Java 配置方式,在 @Bean
注解上添加 @Scope("prototype")
注解即可。
@Configuration
public class AppConfig {
@Bean
@Scope("prototype")
public MyPrototypeBean myPrototypeBean() {
return new MyPrototypeBean();
}
}
这种方式与 YAML 配置是等效的,可以根据你的项目具体情况进行选择。