@Bean不会被Name注入

时间:2016-10-11 16:23:24

标签: spring dependency-injection

我正在使用Spring Boot 1.3,我有以下配置类:

@Configuration

public class MainConfig {

    @Bean(name="dateAndTimeFormater")
    public SimpleDateFormat dateAndTimeFormater(){
        return new SimpleDateFormat("yyyy-MM-dd"+Constants.STRING_SEPARATOR+"hh:mm");
    }
    @Bean(name="dateFormater")
    public SimpleDateFormat dateFormaterBean(){
        return new SimpleDateFormat("yyyy-MM-dd"+Constants.STRING_SEPARATOR+"hh:mm");
    }
}

当我尝试按名称注入以下bean之一时,它会抛出: 没有定义[java.text.SimpleDateFormat]类型的限定bean:期望的单个匹配bean但找到2:dateAndTimeFormater,dateFormater。

这是我注入bean的地方: private static SimpleDateFormat sdf;

@Autowired
@Qualifier("dateAndTimeFormater")
public static void setSdf(SimpleDateFormat sdf) {
    myClass.sdf = sdf;
}

我试过@Ressource,@ Inject。它不起作用。

任何建议将不胜感激?

1 个答案:

答案 0 :(得分:0)

这是因为你试图连接那个静态方法,spring容器不会连接看静态引用或方法的依赖项,why can't you do that

@Autowired
@Qualifier("dateAndTimeFormater")
public void setSdf(SimpleDateFormat sdf) {
    myClass.sdf = sdf;
}