不是这个,我指的是取代@Resource和@Autowired的那个,在整个类上加注解的构造器注入2
时间: 2024-10-04 16:01:50 浏览: 28
您提到的是Spring Boot 2.x及更高版本引入的隐式构造函数注入(Implicit Constructor Dependency Injection)。在早期版本中,`@Resource` 和 `@Autowired` 都是常用的依赖注入注解,但在Spring 4.0开始,`@Autowired` 注解变得更为主导,而且允许在类级别使用`@Configuration`注解进行隐式构造函数注入。
当你在一个`@Configuration`注解的类上使用`@Autowired`,Spring会查找该类的所有公共无参构造器并尝试注入其所有属性。这种方式简化了配置,特别是在配置类(如@Configuration、@EnableConfigurationProperties等)中,你可以直接为所有的字段提供依赖,而无需手动指定每个字段。
例如:
```java
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Configuration;
@Configuration
@ConfigurationProperties(prefix = "app")
public class AppConfig {
private String property1;
private int property2;
// 省略getter和setter
@Autowired
public AppConfig(String property1, int property2) {
this.property1 = property1;
this.property2 = property2;
}
}
```
在这里,`AppConfig`的两个属性会在Spring启动时,基于`app.property1`和`app.property2`的值自动注入。
阅读全文