什么是Spring服务注释?

时间:2017-12-06 07:18:54

标签: spring

我知道@Service用于将类标记为业务逻辑类。为什么春天有用?我已经可以使用@Component将类标记为bean。我了解@Service@Component更具体,但是如何?

3 个答案:

答案 0 :(得分:12)

@Component注释视为 Swiss Knife 。它可以作为切割刀,开瓶器,剪刀等。

Component

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

现在,@Service只是@Component的一个版本,比如说刀。

Spring过程@Service@Component类似,因为@Service接口本身已使用@Component注释。

来自Spring docs:

@Target(value=TYPE)
@Retention(value=RUNTIME)
@Documented
@Component
public @interface Service
     

表示带注释的类是“服务”(例如,业务)   服务门面)。

为什么要区分它们?

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

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

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

答案 1 :(得分:11)

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

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

What's the difference between @Component, @Repository & @Service annotations in Spring?

  

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

答案 2 :(得分:3)

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