Springboot 5种注解方式为容器注入bean

1. 最简单的 @Component (以及同样性质的若干注解)

2. 配置类中 @Bean

3. 实现FactoryBean (FactoryBean不是BeanFactory哦,FactoryBean是用户创建的bean,通过其工厂方法产生业务对象,BeanFactory是spring框架的重要组成部分,非用户定义)

4. 实现BeanDefinitionRegistryPostProcessor接口

5. 实现ImportBeanDefinitionRegistrar接口

Spring Boot 提供了多种注入 Bean方式,使得依赖管理变得更加方便。主要有以下几种: 1. **构造函数注入**(Constructor Injection):这是最常见的注入方式,通过将 Bean 的构造函数参数映射到 Spring 容器里的配置。例如,在 Application 类中创建一个 Service 实例: ```java @Service public class MyService { private final MyRepository repository; @Autowired public MyService(MyRepository repository) { this.repository = repository; } } ``` 2. **setter 方法注入**(Setter Injection):当构造函数不适合时,可以使用 setter 方法注入Spring 会自动查找匹配的 setter 方法并设置其值: ```java @Service public class MyService { private MyRepository repository; // ... public void setRepository(MyRepository repository) { this.repository = repository; } } // XML 配置或 Java Config 中 @Autowired private void setRepository(MyRepository repository) { this.myService.setRepository(repository); } ``` 3. **@Autowired/@Resource 注解**:这两个注解用于简化自动装配过程,它们会在候选 Bean 中寻找与属性类型匹配的对象。 4. **Spring Expression Language (SpEL)**:允许你在属性值上使用表达式语言来动态地确定依赖项。 5. **@Qualifier注解**:对于有多个同名Bean的情况,可以使用Qualifier指定需要的具体实例。 6. **@Inject注解**:这是 Guice 模块中的一种注入方式,但在 Spring Boot 中不太常用,通常用于与第三方 IoC 库集成。 7. **使用@ComponentScan扫描包**:自动发现并注册带有特定注解(如@Service、@Repository等)的类。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值