【发布时间】:2018-12-20 13:22:00
【问题描述】:
我正在学习Spring boot + oauth2 + JWT,在AuthorizationServerConfig.class(或其他一些配置类)中,我注意到在许多示例中,他们使用@Bean注解来装饰一些方法,并将方法设置为'民众'。例如:
@Configuration
@EnableAuthorizationServer
@Slf4j
public class AuthorizationServerConfig extends
AuthorizationServerConfigurerAdapter {
....
....
@Bean
public TokenStore tokenStore() {
return new JwtTokenStore(this.accessTokenConverter());
}
....
}
如果我删除 Bean 注释并将方法设为私有,我的应用程序仍然可以工作。所以我的问题是,为什么我们需要 Bean 注解并公开方法?
【问题讨论】:
-
Bean使方法的结果成为 Spring 托管 bean,没有它就不会。它可能看起来有效,但最终你会遇到奇怪的问题(因为你可能没有得到你认为你得到的东西或多个实例等)。 -
谢谢你们的回答!后来我在ResourceServerConfig中发现,这个例子重用了TokenStore。为了将它们注入 ResourceServerConfig.class,我们必须将其公开并使用 @Bean。
标签: java spring spring-boot configuration annotations