gpt4 book ai didi

java - 为什么passwordEncoder()作为@Bean?

转载 作者:行者123 更新时间:2023-11-30 01:46:34 26 4
gpt4 key购买 nike

如果passwordEncoder()直接作为函数调用,为什么要定义为@Bean?这是我正在谈论的示例

@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}

user.setPassword(passwordEncoder.encode(accountDto.getPassword()));

https://www.baeldung.com/spring-security-registration-password-encoding-bcrypt

或者我见过有人这样做 auth.userDetailsS​​ervice(customUserDetailsS​​ervice).passwordEncoder(passwordEncoder());

最佳答案

@Bean 注解可以出现在方法上,这是注册bean的一种可能性。这样,BeanFactory 就可以识别该 bean,并使用从方法名称派生的名称(“passwordEncoder”)对其进行限定。另一种方法是明确命名它们:

 @Bean({"b1", "b2"}) // bean available as 'b1' and 'b2', but not 'myBean'
public MyBean myBean() {
// instantiate and configure MyBean obj
return obj;
}

咨询javadoc了解更多信息。

编辑:在示例中,@Bean 被定义为将抽象 PasswordEncoder 绑定(bind)到实现 BCryptPasswordEncoder。否则spring不知道,如果scan中有更多的具体类是什么。

关于java - 为什么passwordEncoder()作为@Bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57725385/

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