什么是Spring服务注释?

web*_*nce 15 spring

据我所知,@Service它用于将类标记为业务逻辑类.为什么春天有用?我已经可以@Component用来将类标记为bean.我明白@Service比具体而言@Component,但如何?

Dha*_*ria 17

将@Component注释视为瑞士刀.它可以作为切割刀,开罐器,剪刀等.

零件

同样,您的Component可以充当存储库,Business Logic类或控制器.

现在,@Service只是其中一个版本@Component,比如一把刀.

Spring过程@Service类似于@Component,因为@Service接口本身是用注释的@Component.

来自Spring docs:

@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Component
public @interface Service
Run Code Online (Sandbox Code Playgroud)

表示带注释的类是"服务"(例如,业务服务外观).

为什么要区分它们?

要应用编程的基本规则:您的代码应易于阅读.

是的,您可以@Component在任何地方使用注释,它可以正常工作,但为了更好地理解代码,最好使用相应的特殊类型的注释,如@Service我们的情况.

另一个好处是易于调试.一旦你知道错误,你就不必希望从一个组件类到另一个组件类,检查它是否是该类是服务,存储库或控制器.


San*_*kar 16

@ Service,@ Controller,@ Repository = {@Component +一些更特殊的功能}

点击以下链接了解更多详情

Spring中的@ Component,@ Repository和@Service注释有什么区别?

@Component注释将java类标记为bean,因此spring的组件扫描机制可以将其拾取并将其拉入应用程序上下文.@Service注释也是组件注释的特化.它目前不提供@Component注释的任何其他行为,但在服务层类中使用@Service而不是@Component是一个好主意,因为它更好地指定了intent.此外,工具支持和其他行为可能在将来依赖于它.


小智 6

@Service 注释是组件注释的特殊化。它目前不提供任何超过 @Component 注释的附加行为,但在服务层类中使用 @Service 而不是 @Component 是一个好主意,因为它可以更好地指定意图。此外,工具支持和其他行为将来可能会依赖它。

\n