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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么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貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

@Bean注釋可以出現(xiàn)在方法上,這是注冊(cè) bean 的一種可能性。這種方式BeanFactory知道這個(gè) 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到實(shí)現(xiàn)BCryptPasswordEncoder。否則 spring 不會(huì)知道,如果掃描中有更多的類,那么具體的類是什么。


查看完整回答
反對(duì) 回復(fù) 2023-06-28
?
DIEA

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超2個(gè)贊

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


查看完整回答
反對(duì) 回復(fù) 2023-06-28
?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊

@Bean注解用于將任何對(duì)象/方法注冊(cè)到Spring容器作為Bean。

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


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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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