为了账号安全,请及时绑定邮箱和手机立即绑定

我可以在服务中使用 SQL 查询吗

我可以在服务中使用 SQL 查询吗

手掌心 2022-07-14 09:03:50
执行 SQL 查询的推荐方法是使用@Repository注释创建存储库。我想知道我是否也可以使用@Service注释在服务中执行 SQL 查询,或者这是否与特定的 Spring 原型相关联?例如:是否有任何规则保证一个@Service类必须具有业务逻辑并且@Repository必须具有查询执行?如果我在一个类中执行一个查询,@Service它会抛出任何异常吗?
查看完整描述

4 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

不,它不会抛出任何异常。但是分离数据库逻辑和业务逻辑的想法是将@Service 用于服务实现(业务逻辑)和@Repository 用于存储库,即处理数据库操作(它可以是CRUD、PagingAndSorting 等)。

因此,代码变得模块化并遵循设计模式和编码标准。服务将使用存储库。您的处理程序将使用您的服务中的方法。这就是它的工作原理。


查看完整回答
反对 回复 2022-07-14
?
慕森卡

TA贡献1806条经验 获得超8个赞

根据Spring API 规范

当与 PersistenceExceptionTranslationPostProcessor 结合使用时,使用@Repository 注释的类符合 Spring DataAccessException 转换的条件。注释类也被阐明了它在整个应用程序架构中的作用,用于工具、方面等。

因此 DataAccessException 旨在用户代码在不知道正在使用的特定数据访问 API(例如 JDBC)的详细信息的情况下查找并处理遇到的错误类型。

@Service 没有任何 DataAccessException 翻译,因此您可以在使用 @Service 注释注释的类上预期未翻译的异常。它表明一个类是一个业务服务门面。


查看完整回答
反对 回复 2022-07-14
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

@Service ,@Repository,@Controller都是专门化@Component的都称为Spring Beans


 @Component  generic stereotype for any Spring-managed component 

 @Repository stereotype for persistence layer                    

 @Service    stereotype for service layer                        

 @Controller stereotype for presentation layer (spring-mvc) 

这一切都是为了分发关注点(演示、业务、数据库),所以它不会像您要求的那样出现任何异常。


您可以在此处参考更多信息- Spring Docs


查看完整回答
反对 回复 2022-07-14
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

当我们要开发任何项目时,它应该是lossy coupled and maintainable. 实现这一层分离很重要

@Service- 使用@Service 注释所有服务类。该层知道工作单元。您所有的业务逻辑都将在服务类中。通常,服务层的方法都包含在事务之下。您可以从服务方法进行多个 DAO 调用。如果一个事务失败,所有事务都应该回滚。

@Repository- 使用 @Repository 注释所有 DAO 类。您所有的数据库访问逻辑都应该在 DAO 类中。

@Component- 使用组件构造型注释您的其他组件(例如 REST 资源类)。

使用它们的原因:

  • 使用@Repository 或@Service 而不是@Component 的主要优点是很容易编写一个AOP 切入点,例如,所有使用@Repository 注释的类。

  • 您不必在上下文 xml 文件中编写 bean 定义。而是注释类并通过自动装配来使用它们。

  • 专门的注释有助于清楚地划分应用层(在标准的 3 层应用中)。

什么是刻板印象 参考这里

@Component 任何 Spring 管理组件的通用原型
@Repository 原型用于持久层
@Service 原型用于服务层
@Controller 原型用于表示层(spring-mvc)

有关更多详细信息,请单击此处此处


查看完整回答
反对 回复 2022-07-14
  • 4 回答
  • 0 关注
  • 73 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信