gpt4 book ai didi

java - Java 中的服务层或仅存储库

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:52 27 4
gpt4 key购买 nike

如果我有包含保存、删除和修改操作的 Spring 数据存储库。我应该在服务层创建以下方法操作吗?并添加注释 @Transactional?还是让他们保持原样?或者我应该将它们放在存储库层中吗?

示例服务

@Service
public class RepositoryOperations{

@Autowired
ProductRepository productRepository;

@Transactional
public void saveProduct(){
productRepository.save();
}

...

}

最佳答案

我认为您的代码使用了一种很好的方法。您可以创建一个将调用产品存储库方法的服务层,以分离职责(业务与数据逻辑)。

3 层架构描述了您的方法,如下所示:

  • Controller :处理进入系统的所有输入值(例如,从端点)并将它们传递给服务。在 Spring 中,您可以使用 @Controller 类注释来将它们与其他组件区分开来。
  • 服务:处理与您的应用程序相关的所有业务逻辑的组件。您可以使用@Service 注释。
  • DAO(数据访问对象):包含数据逻辑的类(在您的例子中是存储库)。您可以使用@Repository 注释。

为了防止出现问题时您的 saveProduct() 服务方法不一致,您可以使用@Transactional 注释来回滚您的方法在数据库中所做的所有更改,所以我认为这是一个很好的做法在数据库中进行写入操作时使用该注释。

关于java - Java 中的服务层或仅存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44978720/

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