第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么passwordEncoder()作為@Bean?

為什么passwordEncoder()作為@Bean?

德瑪西亞99 2023-06-28 15:45:00
如果直接作為函數(shù)調(diào)用,為什么passwordEncoder() 被定義為@Bean?這是我正在談?wù)摰睦覢Beanpublic PasswordEncoder passwordEncoder() {    return new BCryptPasswordEncoder();}user.setPassword(passwordEncoder.encode(accountDto.getPassword()));https://www.baeldung.com/spring-security-registration-password-encoding-bcrypt或者我見過人們這樣做 auth.userDetailsService(customUserDetailsService).passwordEncoder(passwordEncoder());
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻1827條經(jīng)驗 獲得超8個贊

@Bean注釋可以出現(xiàn)在方法上,這是注冊 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;

?}


在示例中@Bean定義為將抽象綁定PasswordEncoder到實現(xiàn)BCryptPasswordEncoder。否則 spring 不會知道,如果掃描中有更多的類,那么具體的類是什么。


查看完整回答
反對 回復 2023-06-28
?
DIEA

TA貢獻1820條經(jīng)驗 獲得超3個贊

您需要閱讀有關(guān)依賴注入的更多信息,DI 是一種解決許多問題的模式,特別是與Program to Interface一起使用時,在這種情況下,如果您不編寫它,它將強制它每次@Bean創(chuàng)建多個實例BCryptPasswordEncoder調(diào)用該方法。而如果你編寫@Beanbean 生命周期的實例化和管理,則由 管理Spring Container,這再次確保僅創(chuàng)建單個實例,因為Singleton作用域是 spring 中的默認實例。


查看完整回答
反對 回復 2023-06-28
?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

@Bean注解用于將任何對象/方法注冊到Spring容器作為Bean。

在您使用passwordEncoder()方法作為bean的問題中,它使用@Bean注釋進行標記,以便可以輕松地將其注入到其他對象并使用。


查看完整回答
反對 回復 2023-06-28
  • 3 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號