我是新来的春天,并陷入了一些问题,如下所述 -如何在基于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