gpt4 book ai didi

java - Autowiring 不起作用,Spring Boot 1.5.8,NoSuchBeanDefinitionException :BCryptPasswordEncoder,

转载 作者:行者123 更新时间:2023-12-02 02:11:41 25 4
gpt4 key购买 nike

org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder没有被注入(inject)。无法找出其中的原因。在 stackoverflow 内外都经历了几个问题,每次都改进我的搜索查询,只是希望找到任何人发布的类似问题。

在 Debug模式下运行项目会显示上下文初始化期间遇到异常,然后打印如下:

Application failed to start due to an exception
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder' available: expected at least 1 bean which qualifies as autowire candidate.

Description:

Field encoder in com.codingethics.flightreservation.controller.UserController required a bean of type 'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder' that could not be found.


Action:

Consider defining a bean of type 'org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder' in your configuration.

该错误在其消息中非常明显,但又令人困惑,因为我已经使 UserController 类和字段 encoder 符合使用所需注释的 Autowiring 条件。此外,这里我试图注入(inject)一个 Spring 提供的依赖项,而不是用户定义的依赖项。我不确定是否需要更多配置。在同一个项目中,我以类似的方式成功使用了 JavaMailSender。

所以困扰我的是为什么这有效?:

@Component
public class EmailUtil {

@Autowired
private JavaMailSender javaMailSender;

}

但是这不是:UserController.java

    @Controller
public class UserController {

@Autowired
private BCryptPasswordEncoder encoder;

}

非常感谢任何形式的帮助/指导。

最佳答案

您是否尝试过在@Configuration类中手动创建BCryptPasswordEncoder bean?

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

也许值得尝试一下。

关于java - Autowiring 不起作用,Spring Boot 1.5.8,NoSuchBeanDefinitionException :BCryptPasswordEncoder,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49909637/

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