@Bean和可选的@Autowire

问题描述 投票:1回答:1

我的@Configuration定义了几个Bean - A & B。

@Configuration
public class MyConfiguration {

    @Bean
    public A supplyA() {
        return new A(...);
    }

    @Bean
    public B supplyB() {
        return new B(...);
    }
}

我希望我应该在需要它们的地方@Autowire A和B,就像这样。

@Controller
public MyController {

    @Autowire
    public MyController(A a, B b) {

    }
}

但如果不在构造函数中使用@Autowire,它就能正常工作。这到底是怎么回事?(如果这很重要的话,我用的是Spring 5)

spring javabeans autowired
1个回答
0
投票

我想你正在尝试的是 constructor 注射,检查 https:/docs.spring.iospringdocs4.3.26.RELEASEspring-framework-referencehtmlsingle#beans-constructor-injection。

@Autowire,通常用于 set 注射。

请了解两者的区别,再做改变。

© www.soinside.com 2019 - 2024. All rights reserved.