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

无法调用findByEmail,因为“This.UserRepository”是空错误

顾俊誉
2023-03-14

每次我尝试处理我的/register方法时,我总是收到一个不能调用“com.***.repositories.userrepository.findByEmail(String)”的错误,因为“this.userrepository”是空错误。

我不明白为什么代码会被认为是空的。

控制器-

@Controller
@RestController
@RequestMapping("/api/v1")
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class AuthenticationController {

    @Autowired
    UserService userService;
    UserRepository userRepository;
    AuthenticationTokenRepository authenticationTokenRepository;

    @PostMapping(value = "/register")
    public ModelAndView registerUser(ModelAndView modelAndView, User user) {
        User existingUser = userRepository.findByEmail(user.getEmail());
        if (existingUser != null) {
            modelAndView.addObject("message", "This email already exists!");
            modelAndView.setViewName("error");
        } else {
            userRepository.save(user);

            AuthenticationToken authenticationToken = new AuthenticationToken(user);
            authenticationTokenRepository.save(authenticationToken);

            SimpleMailMessage mailMessage = new SimpleMailMessage();
            mailMessage.setTo(user.getEmail());
            mailMessage.setSubject("Complete Registration!");
            mailMessage.setFrom("***@gmail.com");
            mailMessage.setText("To confirm your account, please click here : "
                    + "http://localhost:8080/confirm-account?token=" + authenticationToken.getConfirmationToken());

            emailSenderService.sendEmail(mailMessage);
            modelAndView.addObject("email", user.getEmail());
            modelAndView.setViewName("successfulRegisteration");
        }
        return modelAndView;
    }

}

Axios调用-

submit() {
  let formData = new FormData();
  formData.set("firstName" , this.firstName)
  formData.set("lastName", this.lastName)
  formData.set("email", this.email)
  formData.set("password", this.password)
  formData.set("captchaToken", this.captchaToken)
  formData.set("agreedToTermsOfService", true)
  axios.post("http://localhost:8080/api/v1/register", formData,
      {headers: {'Content-Type': 'application/json'}})
      .then(res =>  {
        if (res.status === 200) {
          this.$router.push('/register-complete');
        } else {
          console.log(res.data.code);
        }
      })
      .catch(function (err) {
        console.log(err);
      })
}

我的用户存储库-

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    User findByEmail(String email);
}

共有1个答案

赵高韵
2023-03-14

只需将@Autowired添加到您想要获得spring Autowired的相关字段中即可。

将代码从

   @Autowired
    UserService userService;
    UserRepository userRepository;
    AuthenticationTokenRepository authenticationTokenRepository;

   @Autowired
    UserService userService;

   @Autowired
    UserRepository userRepository;

   @Autowired
    AuthenticationTokenRepository authenticationTokenRepository;
 类似资料:
  • 这里有两节课。SaleGood类有一个可变特性a,应该在另一个名为Inventory类中使用。类Inventory有两个可变特性,inventoryAmount和inventoryBill,这两个特性都应该在类Salegood中使用。 我正在使用getter/setter。然而,错误说 我以为是因为这个代码错了?因此我不能使用。我试了一整天。但仍然不知道如何修复它。我尝试了,也是错误的。 在课堂上

  • 我刚来spring boot,就偶然发现了这个奇怪的例外。 目的:我正在尝试构建一个基本的spring boot rest客户端应用程序。 问题:获取异常为空的错误。即 当我的@RequestMapping值为“Employee”时, 但当我将其改为“模板/员工”时, 它会抛出下面附加的错误。谁能找出并解释是什么引起了这个问题?谢谢. 错误 这里是我的pom.xml以供参考 error.jsp

  • 我正在尝试编写一个简单的客户机/服务器应用程序。我在客户端有一个数据,它会变成一个整数数组并传输到服务器。服务器进行计算并将其返回给客户端。但我的程序却出现了这个例外。 抱歉,我只是在学习,真的需要你的帮助。

  • 我在eclipse上不断收到这个错误,说Jan 26 2021年12:58:03 AM org.apache.catalina.core.StandardWrapperValve invoke Severe:servlet.Service()for servlet[com.xadmin.userManagement.web.userServlet]在路径为[/UserManagement]的上下文

  • 我一直得到这个错误在我的eclipse说Jan26, 2021 12:58:03AMorg.apache.catalina.core.标准WrapperValve调用SEVERE: Servlet.service()servlet[com.xadmin.usermanagement.web.UserServlet]在上下文中与路径[/UserManagement]抛出异常<--plhd-不能调用j

  • 我有一个java中的练习,它的文本是: 矩阵类表示整数数组。其框架如下:公共类矩阵{private int[]]mat;/*创建一个矩阵对象,其内容由矩阵矩阵表示。*/public Matrix(int[][]mat){…}/*返回由调用该方法的对象表示的矩阵元素之和。*/public int sumElements(){…}/*通过移除行i和列j*/公共子矩阵矩阵(int i,int j){。。