关于java:什么时候在春天使用服务或组件?

When to use service or component in spring?

本问题已经有最佳答案,请猛点这里访问。

弹簧中何时使用维修或部件?

例如,负责发送电子邮件或公共业务逻辑的模块是"服务"还是"组件"?有什么区别?

服务是否可以呼叫其他服务?有什么交易问题吗?或者服务应该只调用组件?

有人告诉我,一个服务不应该调用其他服务,只应该调用组件,这意味着控制器->服务->组件->DAO,但我发现很多人都有控制器->服务->DAO的概念,没有组件。

在春季有没有关于这个主题的系统设计标准?


以"configure"春恩知道You can provide with the need of the类的情况下,你应该告诉你,什么是春和how the involved对象是新建的。你可以使用this to do or an XML文件通过Configuration annotationsP></

在你的房子(take the Annotation清规戒律多更好的方法和使用一个简单的内部记录@Component)You can to the class。this is like telling泉:"嘿!我想你知道你也许need of this安审级。也许因为它的请求,也许因为它的requested needs"的东西。我只是让这类注释在@Component春知道恩existsP></

there are other that do the same:annotationsP></

  • @Controller(和@RestController)
  • @Service
  • @Repository

他们在春天that the class C is involved in the上下文。but also have the meaning语义:P></

  • @Controller=层presentation @Componentbelonging to
  • @Service= @Componentbelonging to /层服务使用的房屋
  • @Repositorybelonging to=@Component持续层

你可以找到更多的信息在这个问题P></

Should a service be able to call the other services?

我不看任何问题with that。if any of your actions to do some服务……that are already Performed by other你想duplication surely avoid队列。只要你尊重the架构层(不依赖上你了)。P></

You can check this article about this about清洁结构P></


@Componentis for other stereotypes GENERIC。我知道你可以replace没有什么会@Repository, @Service, @Controller@Component和相变。but for You should使用更好的readability @Repository, @Service, @ControllerP></