Spring 中的 @Service 与 @Component

Ank*_*dia 6 java spring annotations spring-mvc spring-boot

我了解@Component 和@Controller、@Component 和@Repository 之间的区别,但无法找到与@Component 相比我们在@Service 中获得的附加功能。

Pat*_*mil 8

在此处输入图片说明

我们可以直接@Component为每个 bean 使用,但为了更好地理解和维护大型应用程序,我们使用@Controller, @Service, @Repository.

@Component: generic stereotype for any Spring-managed component 
@Service: stereotype for service layer
Run Code Online (Sandbox Code Playgroud)

@成分

@Controller、@Service 和@Repository 注释的定义告诉@Service 是一种特殊类型的@Component。特殊类型的注解也会被扫描,因为它们本身被注解了@Component注解,这意味着它们也是@Components。如果我们定义我们自己的自定义注释并用 注释它@Component,它也会被扫描<context:component-scan>

@Component
public @interface Service {
    ….
}

@Component
public @interface Repository {
    ….
}

@Component
public @interface Controller {
    …
}
Run Code Online (Sandbox Code Playgroud)

@服务

@Service bean 在存储库层中保存业务逻辑和调用方法。