我是新來的春天,並陷入了一些問題,如下所述 -如何在基於Spring的Java配置中正確使用@Inject註解?
我有一個班級的顏色與兩個不同的實施名稱爲紅色和藍色,我想注入顏色列表使用@inject
。
Below is my ApplicationConfiguration class
package org.arpit.java2blog.config;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.inject.Inject;
import org.arpit.java2blog.model.Country;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(CountryConfig.class)
public class ApplicationConfiguration {
@Inject
private List<Color> colorList;
@Bean
public List<Color> colorList() {
System.out.println("Second");
List<Color> aList = new ArrayList<Color>();
aList.add(new Blue());
return aList;
}
}
,但得到的例外是
注射自動裝配Autowired依賴的失敗;嵌套異常是 org.springframework.beans.factory.BeanCreationException:不能 autowire字段:private java.util.List org.arpit.java2blog.config.ApplicationConfiguration.colorList;嵌套0例外是 org.springframework.beans.factory.NoSuchBeanDefinitionException:[org.arpit.java2blog.config.Color]發現 依賴性[org.arpit.java2blog.config.Color的集合]沒有類型的 預選賽豆:預期至少有1個豆符合此 依賴關係的自動導向候選。依賴註解:{@ javax.inject.Inject()}
你怎麼課'顏色'看起來像?它是否有'@ Component'註釋?它在Spring上下文中可用嗎? – questionare
不,它只是一個簡單的普通類,沒有@component – CoreThought
不確定,但同樣的東西可以正常使用@resource註釋 – CoreThought