springboot 的几种注入 bean 的方式
时间: 2024-12-10 16:47:48 浏览: 12
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等)的类。
阅读全文