SPRING BOOT 注释:是否需要

SPRING BOOT annotation: are they required

@Component@Service@Repository 在 Spring Boot 2 中是可选的吗?

示例如果有一个名为 FirstController 的控制器 class,并用 @Controller@RestController@RequestMapping 注释。我还有名为 FirstService 和 SecondService 的服务 classes 以及一个名为 FirstRespository 的存储库。

除了 FirstController,我没有注释任何 class,但我的应用程序仍然有效。

这是否意味着您的应用不需要那些刻板印象注释就可以正常工作?您只需要它用于约定,如果您需要修改范围等行为。

感谢您提前回答。

考虑一下:

@Service
public class MyService {

private IComponent component;

@Autowired
    public MyService(IComponent component) {
        this.preparingService = preparingService;
    }
}

为了自动装配 class 实现 IComponent,您需要用 @Service@Component 装饰 class 以便 Spring 将其注入 MyServiceMyService 本身当然会注入到您的控制器中。

它们不是您的应用程序运行所必需的,但它们不会在您的应用程序启动时被 Spring 选择,您也不会享受该注释规范的好处

@Component - 任何 Spring 托管组件的通用构造型

@Repository - 持久层的原型

@Service - 服务层的原型

当您编写 Spring 应用程序时,任何代码都可以通过,但注释有助于 Spring 理解应该将什么创建为 bean 或组件以及用途。