Spring - 将@Bean添加到没有名称属性的字符串

在String上添加@Bean是有原因的

您必须命名该 bean,然后在自动装配引用该名称时使用 @Qualifier 注释。

但在下面的代码中,没有 name 属性

@Configuration

@PropertySource(value = { "classpath:my.properties" })

public class MyEnvironment {


    @Value("${MY_NAME}")            String MY_NAME;

    @Value("${MY_NAME2}")           String MY_NAME2;


    @Bean

    public String getMyName() {

        return MY_NAME;

    }

    @Bean

    public String getMyName2() {

        return MY_NAME2;

    }

}

它的调用方法如下:


myEnvironment.getMyName();

在这种情况下不是@Bean多余的/不相关的吗?这个约定也会引起问题吗?还是有隐藏的好处?


临摹微笑
浏览 113回答 1
1回答

GCT1015

考虑到Spring的意图是注入依赖,@Bean在这种情况下肯定是多余的。由于大多数类仅使用(或者您可能会说 - 依赖)配置对象myEnvironment。MyEnvironment因此,将类作为一个单元注入到依赖它的类(而不是单个对象)中更有意义String。不过,这取决于您如何设计类及其依赖项。例如,您还可以直接在这些类上使用,将这两个字符串值注入到需要它的类中,而根本@Value不需要该类。MyEnvironment
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java