gpt4 book ai didi

java - Spring 没有匹配类型的 bean,预计至少有 1 个 bean

转载 作者:行者123 更新时间:2023-12-04 21:28:05 27 4
gpt4 key购买 nike

获取错误

 No matching bean of type [foo.bar.service.AccountService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

我的服务:

public interface AccountService {

@Service
public class AccountServiceImpl implements AccountService {

所以我应该得到实现

我想从哪里得到它:

public class CustomAuthentication implements AuthenticationProvider {

@Autowired
private AccountService accountService;

在我的其他类(class)也做同样的事情,但它有效。

@Controller
public class AccountController {

@Autowired
private AccountService accountService;

当我从 CustomAuthentication 中删除这两行时,没有出现任何错误。

配置以防万一:

    <context:component-scan base-package="foo.bar" />

最佳答案

只有 spring 管理的对象可以 Autowiring 另一个组件/服务/存储库。

public class CustomAuthentication implements AuthenticationProvider需要 Spring 管理

喜欢

@Controller
public class AccountController

尝试使用@Component 注释 CustomAuthenitcation

@Component
public class CustomAuthentication implements AuthenticationProvider

让我知道 CustomAuthentication 对象是如何创建的。 CustomAuthentication 对象应该是通过请求 Spring(ApplicationContext.getBean() 或在另一个 bean 中 Autowiring )获得的代理。

更新:

此错误的原因是您有两个配置文件。 spring-servlet.xml 和 spring-security.xml。在 spring-security.xml 中定义的 Bean 无法在其他文件中找到。

所以你应该尝试像<import resource="spring-servlet.xml"/>这样的东西在spring-security.xml .

关于java - Spring 没有匹配类型的 bean,预计至少有 1 个 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13816558/

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