在String上添加@Bean是有原因的您必須命名該 bean,然后在自動(dòng)裝配引用該名稱時(shí)使用 @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; }}它的調(diào)用方法如下:myEnvironment.getMyName();在這種情況下不是@Bean多余的/不相關(guān)的嗎?這個(gè)約定也會(huì)引起問題嗎?還是有隱藏的好處?
1 回答

GCT1015
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
考慮到Spring的意圖是注入依賴,@Bean
在這種情況下肯定是多余的。
由于大多數(shù)類僅使用(或者您可能會(huì)說 - 依賴)配置對象myEnvironment
。MyEnvironment
因此,將類作為一個(gè)單元注入到依賴它的類(而不是單個(gè)對象)中更有意義String
。
不過,這取決于您如何設(shè)計(jì)類及其依賴項(xiàng)。例如,您還可以直接在這些類上使用,將這兩個(gè)字符串值注入到需要它的類中,而根本@Value
不需要該類。MyEnvironment
添加回答
舉報(bào)
0/150
提交
取消