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

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

沒有“org.springframework.security.crypto.bcrypt.

沒有“org.springframework.security.crypto.bcrypt.

莫回無 2023-09-20 14:57:27
我正在使用 BCryptPasswordEncoder 來編碼我的密碼,但是當我使用它的編碼函數(shù)在 UserService 類的保存函數(shù)中對密碼進行編碼時,它給了我這個錯誤:創(chuàng)建名稱為“userController”的 bean 時出錯:通過字段“userServiceInter”表達的依賴關(guān)系不滿足;嵌套異常是 org.springframework.beans.factory.UnsatisfiedDependencyException:創(chuàng)建名稱為“userService”的 bean 時出錯:通過字段“crypt”表達的依賴關(guān)系不滿足;嵌套異常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:沒有類型為“org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder”的合格 bean 可用:預計至少有 1 個有資格作為自動裝配候選者的 bean。依賴注釋:{@org.springframework.beans.factory.annotation.Autowired(required=true)}當我刪除它時,它可以工作,但密碼未編碼。用戶服務類:  @Service   public class UserService implements UserServiceInterface{@AutowiredUserRepository repo;@AutowiredBCryptPasswordEncoder crypt;@AutowiredRoleRepository roleRepo;public void save(User user) {        user.setPassword(crypt.encode(user.getPassword()));        Role role = roleRepo.findByRole("USER");        user.setRoles(new HashSet<Role>(Arrays.asList(role)));        repo.save(user);   }@Overridepublic User findByUsername(String userName) {    User user = repo.findByUserName(userName);    return user;}    }用戶服務接口:   @Service    public interface UserServiceInterface {public void save(User user);public User findByUsername(String userName);    }
查看完整描述

3 回答

?
HUH函數(shù)

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

改變


@Autowired

BCryptPasswordEncoder crypt;


@Autowired

PasswordEncoder crypt

或更改passwordEncoder方法


@Bean

BCryptPasswordEncoder passwordEncoder() {


    return new BCryptPasswordEncoder();

}


查看完整回答
反對 回復 2023-09-20
?
一只斗牛犬

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

如果你想知道


“沒有合格的 bean 類型”的含義

從下面的代碼


@Bean

PasswordEncoder passwordEncoder()?

{

? ? return new BCryptPasswordEncoder();

}

絕對 bean 是使用type名稱 創(chuàng)建的。passwordEncoder PasswordEncoder



@Autowired

BCryptPasswordEncoder crypt;

上面的代碼要求 spring 容器注入類型為 的 bean BCryptPasswordEncoder。

(注意:passwordEncoder bean 可能是 BCryptPasswordEncoder 的實例,但 bean 的類型為PasswordEncoder,因此沒有類型的 bean BCryptPasswordEncoder)


因此異常

沒有類型為“org.springframework.security.crypto.bcrypt”的合格bean。BCryptPasswordEncoder '可用


因此,您可以將 name 的 bean 自動裝配passwordEncoder到 type 的字段PasswordEncoder。

@Autowired

PasswordEncoder crypt;

passwordEncoder您還可以從應用程序上下文中按名稱獲取 bean

@Autowired

ApplicationContext context;


inYourMethod()

{

? ?PasswordEncoder crypt = context.getBean("passwordEncoder");

}



為了快速理解@Bean,@Autowired和@Qualifier簡單的 6 個案例解釋得很好

情況 1:創(chuàng)建的 bean 類型和 Autowired 字段的類型不同 - [這不起作用]

(沒有可用的 BCryptPasswordEncoder 類型的合格 bean)


@Autowired

BCryptPasswordEncoder passwordEncoder;


@Bean

PasswordEncoder passwordEncoder()?

{

? ? return new BCryptPasswordEncoder();

}

情況 2:創(chuàng)建的 bean 類型和 Autowired 字段的類型相同 - [這不起作用]

@Autowired

PasswordEncoder passwordEncoder;


@Bean

PasswordEncoder passwordEncoder()?

{

? ? return new BCryptPasswordEncoder();

}

情況 3:自動裝配字段的類型是創(chuàng)建的 bean 的超類型 - [這將起作用] 創(chuàng)建的 bean 是否屬于 BCryptPasswordEncoder 類型 -

是 創(chuàng)建的 bean 是否屬于 PasswordEncoder 類型 - 是

@Autowired

PasswordEncoder passwordEncoder;


@Bean

BCryptPasswordEncoder passwordEncoder()?

{

? ? return new BCryptPasswordEncoder();

}

情況 4:相同類型且沒有 @Qualifier 的多個 bean - [這不起作用]

NoUniqueBeanDefinitionException:沒有可用的“osscpPasswordEncoder”類型的合格 bean:預期有單個匹配 bean,但發(fā)現(xiàn) 2:bcryptPasswordEncoder、md4PasswordEncoder


@Autowired

PasswordEncoder bcrypt;


@Autowired

PasswordEncoder md4;


@Bean

public PasswordEncoder bcryptPasswordEncoder()?

{

? ? return new BCryptPasswordEncoder();

}


@Bean

public PasswordEncoder md4PasswordEncoder()?

{

? ? return new Md4PasswordEncoder();

}

案例 5:相同類型且?guī)в?@Qualifier 的多個 bean - [這將起作用]

限定符有助于選擇要注入的 bean

@Autowired

@Qualifier("bcryptPasswordEncoder")

PasswordEncoder bcrypt;


@Autowired

@Qualifier("md4PasswordEncoder")

PasswordEncoder md4;


@Bean

public PasswordEncoder bcryptPasswordEncoder()?

{

? ? return new BCryptPasswordEncoder();

}


@Bean

public PasswordEncoder md4PasswordEncoder()?

{

? ? return new Md4PasswordEncoder();

}

情況 6:相同類型的多個 bean,沒有 @Qualifier,但字段名稱與 bean 名稱相同 - [這可行]

這里,字段名稱充當限定符,當存在多個相同類型的 bean 時,它會有所幫助。


@Autowired

PasswordEncoder bcryptPasswordEncoder;


@Autowired

PasswordEncoder md4PasswordEncoder;


@Bean

public PasswordEncoder bcryptPasswordEncoder()?

{

? ? return new BCryptPasswordEncoder();

}


@Bean

public PasswordEncoder md4PasswordEncoder()?

{

? ? return new Md4PasswordEncoder();

}


查看完整回答
反對 回復 2023-09-20
?
揚帆大魚

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

在 applicationContext.xml 中添加此行,以便開發(fā)人員使用 xml。

<bean id="bcrypt" class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder"></bean>



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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