2016-10-11 86 views
0

我使用Spring 1.3启动注入,和我有下面的配置类:@Bean不按名称获取

@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"); 
    } 
} 

当我尝试注入以下豆的名字之一,它抛出: 没有定义类型为[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。它没有工作。

任何建议将不胜感激?

+0

我运行你的代码,这几乎确定。如果你想自动装载参数sdf,那么它不能是'静态'。然而,你得到的错误是,如果你没有'@Qualifier',所以我认为你的项目中有一个完全不同的代码 – reos

回答

0

这是因为你正试图连线,静态方法,Spring容器将不依赖线看静态引用或方法,why can't you do that

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

我没有使用静态方法,它没有工作。我想在注入Bean的时候,注释限定符不起作用。当我尝试了一个简单的注释组件类它工作正常??! –