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 将其注入 MyService
时 MyService
本身当然会注入到您的控制器中。
它们不是您的应用程序运行所必需的,但它们不会在您的应用程序启动时被 Spring 选择,您也不会享受该注释规范的好处
@Component - 任何 Spring 托管组件的通用构造型
@Repository - 持久层的原型
@Service - 服务层的原型
当您编写 Spring 应用程序时,任何代码都可以通过,但注释有助于 Spring 理解应该将什么创建为 bean 或组件以及用途。
@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 将其注入 MyService
时 MyService
本身当然会注入到您的控制器中。
它们不是您的应用程序运行所必需的,但它们不会在您的应用程序启动时被 Spring 选择,您也不会享受该注释规范的好处
@Component - 任何 Spring 托管组件的通用构造型
@Repository - 持久层的原型
@Service - 服务层的原型
当您编写 Spring 应用程序时,任何代码都可以通过,但注释有助于 Spring 理解应该将什么创建为 bean 或组件以及用途。