gpt4 book ai didi

spring-boot - Spring Boot 依赖注入(inject)如何使用不同类型的注解

转载 作者:行者123 更新时间:2023-12-01 15:19:56 29 4
gpt4 key购买 nike

我最近开始探索 Spring Boot .我看到有两种方法可以定义 BeansSpring Boot .

  1. 定义@Bean在用 @SprinBootApplication 注释的类中
  2. 定义@Bean在用 @Configuration 注释的类中

我也对stereo-type annotation感到困惑@Repository @Service @Controller等等

有人可以解释一下依赖注入(inject)如何与这些注释一起工作吗?

最佳答案

是的,这是可能的。您可以在任何 @Configuration 或 @SpringBootApplication 类中使用 @Bean,或者使用 @Service、@Component @Repository 等注释显式标记 bean 类。

@Service 或@Component

当您使用@Service 或@Compoenent 标记一个类时,如果spring 的注解扫描范围允许它到达包,spring 会将这些类的实例注册为spring beans。您可以使用 @ComponentScan

提供在扫描期间要包含/排除的包

@Bean

@Beans 标记在可以创建特定类实例的工厂方法上。

@Bean 
public Account getAccount(){
return new DailyAccount();
}

现在在您的应用程序中,您可以简单地使用@Autowire Account 并且 spring 将在内部调用其工厂方法 getAccount,后者又返回一个 DailyAccount 的实例。

使用@Bean 与@Service 或@Compoenent 有一个简单的区别。第一个使您的 bean 彼此松散耦合。

  • 在@Bean 中,您可以灵活地更改帐户实现,甚至无需更改任何帐户类。
  • 考虑一下,如果您的类实例化是一个多步骤操作,例如读取属性值等,那么您可以在 @Bean 方法中轻松完成。
  • 如果您无法访问要实例化的类的源代码,@Bean 也会提供帮助。

关于spring-boot - Spring Boot 依赖注入(inject)如何使用不同类型的注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49269390/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com