当前位置: 首页 > 知识库问答 >
问题:

构造函数的Java Spring参数0是必填项

匡安宜
2023-03-14

我正在学习Spring Framework,我得到了以下错误消息:

com.example.demo.AppUser.AppUserService中的构造函数的参数0需要类型为“com.example.demo.AppUser.AppUserRepository”的bean,但找不到该bean。

package com.example.demo.appuser;

import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

@Service
@AllArgsConstructor
public class AppUserService implements UserDetailsService {

    private final static String USER_NOT_FOUND_MSG =
            "user with email %s not found";

    @Autowired
    private AppUserRepository appUserRepository;


    @Override
    public UserDetails loadUserByUsername(String email)
            throws UsernameNotFoundException {
        return appUserRepository.findByEmail(email)
                .orElseThrow(() ->
                        new UsernameNotFoundException(
                                String.format(USER_NOT_FOUND_MSG, email)));
    }
}

这是我的AppUserRepository

package com.example.demo.appuser;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;

import java.util.Optional;

@Repository
@Transactional(readOnly = true)
public interface AppUserRepository
        extends JpaRepository<AppUser, Long> {

    Optional<AppUser> findByEmail(String email);
}

如果有人知道问题出在哪里,请帮帮我

共有1个答案

夏侯楷
2023-03-14

正如@Jesper的回答,您的AppUserRepository不在spring应用程序上下文中。请检查spring主类,并确保类上面有一个名为@EntityScan(${RepositoryPackagePrefix})的注释。例如:@EntityScan(“com.example”)。

 类似资料:
  • 我正试图编写一个简单的CRUD程序,我得到了这个错误。这个项目是基于我的项目。不知道我为什么不工作。 如果我注释掉构造函数,错误就会消失。我的房子里什么都没有。 有人能帮我一把吗? 这是我的代码: 实体/食品。JAVA 仓库/FoodRepository.java 控制器/食物控制器。JAVA 主课 波姆。xml

  • 启动我的应用程序时出现问题。有人能帮我解决这个问题吗? 总报告 GenericRepositoryImpl 图书仓库搜索 图书服务 图书服务简介

  • 问题内容: Gson用户指南指出,我们应该为任何可以正常使用Gson的类定义默认的无参数构造函数。甚至,在Gson 类的javadoc中说,如果我们尝试对缺少默认构造函数的类实例进行反序列化,则会抛出异常,在这种情况下 应 使用该异常。但是,我尝试对缺少默认构造函数的类使用Gson进行测试,并且序列化和反序列化工作都没有任何麻烦。 这是反序列化的代码。没有非参数构造函数的类: 和一个测试: 效果很

  • 问题内容: 如果父类中有带参数的构造函数,为什么需要默认构造函数(显式) 这将是一个错误。 问题答案: 这里有两个方面的工作: 如果 确实 明确指定了构造函数(如中所述),则Java编译器将 不会 为您创建无参数构造函数。 如果您未明确指定构造函数(如所示),则Java编译器将为您创建一个无参数的构造函数,如下所示: (可访问性取决于类本身的可访问性。) 试图调用超类无参数构造函数-因此它必须存在

  • 在此处输入图像描述 在此处输入图像描述 我仍然不知道该怎么办(我在UserRepository上尝试了Repository注释-错误是一样的)。错误消息:`启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2022-03-14 09:04:54.626错误7236---[main]o.s.b.d.LoggingFailureAnalysisR

  • Gson用户指南指出,我们应该为任何类定义默认的无参数构造函数,以便正确使用Gson。更重要的是,在Gson的类的javadoc中说,如果我们试图反序列化缺少默认构造函数的类的实例,将引发异常,在这种情况下,我们应该使用。然而,我已经尝试在缺少默认构造函数的类中测试使用Gson,并且序列化和反序列化都可以顺利工作。 下面是反序列化的一段代码。没有非参数构造函数的类: 还有一个测试: 这很好用。 所