首页 > 解决方案 > @Bean 和可选的 @Autowire

问题描述

我的 @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)

标签: springjavabeansautowired

解决方案


我认为您正在尝试的是constructor注入,请查看https://docs.spring.io/spring/docs/4.3.26.RELEASE/spring-framework-reference/htmlsingle/#beans-constructor-injection

@Autowire,通常用于set注入。

请先了解差异,然后再进行更改


推荐阅读