在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多余的/不相关的吗?这个约定也会引起问题吗?还是有隐藏的好处?
1 回答
GCT1015
TA贡献1827条经验 获得超4个赞
考虑到Spring的意图是注入依赖,@Bean
在这种情况下肯定是多余的。
由于大多数类仅使用(或者您可能会说 - 依赖)配置对象myEnvironment
。MyEnvironment
因此,将类作为一个单元注入到依赖它的类(而不是单个对象)中更有意义String
。
不过,这取决于您如何设计类及其依赖项。例如,您还可以直接在这些类上使用,将这两个字符串值注入到需要它的类中,而根本@Value
不需要该类。MyEnvironment
添加回答
举报
0/150
提交
取消