【问题标题】:Which dependency injection is appropriate in the MVC pattern?在 MVC 模式中,哪种依赖注入是合适的?
【发布时间】:2021-10-07 03:06:09
【问题描述】:

让我用一个例子来解释一下情况。

目前,有团队和成员作为模型。

class Member {
  String name;
  Team team;
}
class Team {
  String teamName;
}

有一个 MemberRepository 可以访问 Member 数据库。

public interface MemberRepository {
  public Member findByName(String name);
}

可以查询Member的MemberService是否存在。

@Service
Memberservice {
    @Autowired
    MemberRepository memberRepository;
    
    public Member searchMember(String name) {
       return memberRepository.findByName(name);
    }
}

在这种情况下,创建 TeamService 时 如果需要查询members,注入Memberservice还是MemberRepository哪个比较好?

【问题讨论】:

    标签: spring-boot spring-mvc model-view-controller spring-data-jpa


    【解决方案1】:

    遵循单一职责原则,您应该努力让您的课程专注于做一些相关的事情。考虑到这一点,MemberService 应该是唯一一个管理成员的成员,这包括成为唯一一个接触 MemberRepository 的成员。话虽如此,您绝对应该注入 MemberService

    作为一般经验法则,您应该避免使用同一个存储库的多个服务。如果你不这样做,你可能会得到意大利面条代码。这意味着服务应该在它们之间“通信”。

    【讨论】:

    • 感谢您的回复!但是,在Service之间注入依赖时,对于可能导致循环引用的依赖,你怎么看?
    • 循环引用通常意味着你的类设计不正确。这可能不适用于每种情况,但是。它通常暗示您应该更改它。如果您提供示例,我可以尝试提出一些更改建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多