在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
提交
取消