微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在spring boot中编写业务逻辑

如何解决如何在spring boot中编写业务逻辑

如何在服务层写业务逻辑

解决方法

在服务类中创建一个带有参数cart对象的方法并返回响应实体。

然后从控制器类调用该方法。并将自动连接的 loginRepository 移动到服务类中。

public ResponseEntity method(Cart cart){
try {
           String username = cart.getUserName();
           String password = cart.getPassword();
           String email = cart.getEmail();
           String productname = cart.getProductName();
           String price = cart.getPrice();
           String discription = cart.getDiscription();

           if (!(loginRepository.existsByUserNameAndPassword(username,password) && productname != null)) {
               return new ResponseEntity<ApiError>(HttpStatus.NOT_FOUND);
           }
           if (!productRepository.existsByProductNameAndPriceAndDiscription(productname,price,discription)) {
               return new ResponseEntity<>(HttpStatus.BAD_REQUEST);

           }
           Integer count = cartRepository.countByUserName(cart.getUserName());
           System.out.println(count);
           cartRepository.save(new Cart(cart.getUserName(),cart.getPassword(),cart.getEmail(),cart.getProductName(),cart.getPrice(),cart.getDiscription(),count));
           return new ResponseEntity<>(new MessageResponse("product Successfully added to cart"));
       }
       catch (Exception | ApiError e) {
          return new ResponseEntity<ApiError>(HttpStatus.BAD_REQUEST);
       }
}

在控制器中自动装配服务类并从控制器调用上述方法,如下所示。

service.method(cart);
,

这是一个很难回答的问题,有多种最佳实践可用于重构或重构代码。 MVC 和 DAO 等设计模式很有帮助。

Spring 建立在流行的 MVC 设计模式之上。 MVC(Model-View-Controller)是一种软件架构模式,它将应用程序分为三个区域:模型、视图和控制器。 控制器有助于拥有能够为多个不同请求提供服务的多动作类。 在控制器内部,我们尝试使用“单一职责原则”,它应该将业务处理委托给相关的业务类。

记住这一点,我建议您将整个业务逻辑移到一个单独的服务类中,并仅保留控制器中请求和响应的转换。 以防将来您必须处理所有将在控制器中完成并传递到服务层以实现实际业务功能的标头和查询参数。

我还建议您使用 Spring 的 Exception Advice 来处理异常。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?