gpt4 book ai didi

java - Spring 如何知道要使用 @Bean 注入(inject) bean 和方法调用

转载 作者:行者123 更新时间:2023-12-02 01:20:05 27 4
gpt4 key购买 nike

我正在尝试使用 Spring 框架进行一些操作,我想知道 Spring 如何在使用 java 配置时通过方法调用注入(inject)单例依赖?

示例:

@Configuration
public class AppConfiguration {

@Bean
public BlogRepository blogRepository() {
return new BlogRepositoryImpl();
}

@Bean
@Scope("prototype")
public BlogService blogService() {
return new BlogServiceImpl(blogRepository());
}

@Bean
public AuthorService authorService() {
return new AuthorServiceImpl(blogRepository());
}
}

我知道这个类也是一个bean,并且由Spring代理,但是,自从我调用blogRepository()以来,Spring如何始终获取现有的BlogRepository单例在类内,因此代理无法处理调用?

最佳答案

当您使用@Configuration注释类时,使用@Bean注释的方法将由CGLIB代理包装。

如果这是该方法的第一次调用,则将执行原始方法的主体,并将结果对象存储在 Spring 上下文中。所有后续调用都只返回从上下文中检索到的 bean。

关于java - Spring 如何知道要使用 @Bean 注入(inject) bean 和方法调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57878017/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com