当前位置: 首页 > 知识库问答 >
问题:

@bean和可选@autowire

许琛
2023-03-14
@Configuration
public class MyConfiguration {

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

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

我希望我应该在需要A和B的地方自动生成A和B,就像这样:

@Controller
public MyController {

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

    }
}

但在构造函数中没有@autowire时,它也能正常工作。什么给了?(如果重要的话,我在Spring5号节目上)

共有1个答案

袁琪
2023-03-14

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

@autowire,通常用于set注入。

在你做出改变之前,请理解两者的区别

 类似资料:
  • 我有下面的路由和bean来从属性文件中获取消息。在一些消息中,我必须替换消息中的参数。因此,我在bean中寻找一个不编写2个方法的解决方案,一个是带参数的(),另一个是不带参数的()。 它是否可以通过在路由中使用DSL来摆脱bean中的,或者使中的参数可选,以便我在bean中最后有一个方法? 路线 豆

  • 问题内容: 在我的应用程序中,我正在使用ContextLoaderListener从多个jar中加载上下文文件,方法是: 这意味着我无需导入即可引用其他jar中的bean。 在应用程序中,有多个部署选项,在某些部署中,可以排除jar。为了证明这一点,我希望一些bean引用是可选的。例如: 在上面的示例中,如果未找到引用,我想让optionalBeanReference1等于null(以某种方式将其

  • 这两种方法有什么区别:和? 请举个例子。

  • 阅读使用的所有优点,但是,如果我们想在查询参数使用此属性时拥有可选参数,它不起作用。它仍然将所有参数验证为强制性的。知道如何使其可选吗? 执行此代码时,它始终需要 。没有此参数,它不会运行。 编辑:即使传递了id的默认值,它也不起作用。

  • 为什么这段代码会抛出异常?为什么它还要去“奥雷尔斯”分店? 这是因为某种怪异的处决令吗?那么在计算orElse分支之前没有设置第一个可选项的值?

  • 问题内容: 在浏览java.util软件包的文档时,我很惊讶地发现了这一点,并且彼此之间没有任何关系。这似乎很难相信,因为它表明它们是无关的类。 他们为什么没有一个通用的接口,类,子类型或 某些东西 来揭示它们之间的关系?(当您查看它们的用途时,它们是 非常 相似的类。) 另外,为什么需要额外的课程呢?你为什么不能只用呢?我以为是因为它是原始的,但事实并非如此,这将是一个不一致的设计选择。 问题答