gpt4 book ai didi

java - 使用 Spring 从 Controller 层调用存储库和服务

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:44:24 24 4
gpt4 key购买 nike

我使用 Spring Boot 和 Spring Data。

我觉得分离 Repository Layer 和 Service Layer 没问题

所以我的 UserRepository 带有 CRUD 方法和一些 Spring Data 方法

  • 全部查找
  • 查找用户名

我还有带有业务方法的 UserService。

  • checkPassword(字符串登录名,字符串密码)
  • businessMethodAction(字符串用户名)

这是我的问题:

在我的 Controller 中,我必须从 UserService 调用方法,有时从 UserRepository 调用方法。目前,我将两者都注入(inject)到我的 Controller 中,然后调用服务或存储库

@Inject
UserService userService;

@Inject
UserRepository userRepository;

@RequestMapping("{username}")
private void myMethod(@PathVariable String username){
return userRepository.findOne(username);
}

@RequestMapping("{username}/doBusineesAction")
private void myMethod(@PathVariable String username){
return userService.doLogicalThin(username);
}

我只是问,因为我混淆了注入(inject)两者并在同一个类中调用一个或另一个

另一方面,这意味着像这样在服务层中复制方法

public User findOne(String username){
return userRepository.findOne(username);
}

你怎么看?

最佳答案

Controller 层不应该直接调用存储库。您应该始终使用服务层,因为服务层封装了围绕该调用的业务逻辑。仅仅因为目前没有任何业务逻辑,并不意味着您应该完全跳过该层。

关于java - 使用 Spring 从 Controller 层调用存储库和服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35247453/

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