Spring3的@Configuration不能@Inject注入组件扫描的bean

|| 这是我的app.xml:
<context:component-scan base-package=\"destiny.web\" />
<context:annotation-config/>
在destiny.web包中有一个
Dao
(接口)和
DaoImpl
(用
@Repository
注释)。 还有另一个Spring3的destiny.web.AppConfig类:
@Configuration
public class AppConfig
{
  @Inject
  private Dao daoImpl

  public AppConfig()
  {
    System.out.println(\"dao = \" + daoImpl);
  }
}
它显示“ null”,为什么? 我确信所有这些bean /配置/存储库均已扫描。但是似乎@Configuration不知道其他扫描的bean。我想念什么吗? 我尝试通过@ImportResource解决它:
@Configuration
@ImportResource(\"classpath:app.xml\")
public class AppConfig
但是它似乎导致循环bean扫描并引发此异常:
{main} org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Only one AsyncAnnotationBeanPostProcessor may exist within the context.
Offending resource: class path resource [app.xml]
怎么解决呢? 谢谢。     
已邀请:
弹簧将ѭ7component
before inject / autowiring
其他组件。因此,在构造器上打印时,您的dao为空,因为
dao still not injected yet
。 尝试为您的configapp创建测试应用程序。
public class Main {
    public static void main(String[] args) {
        ApplicationContext context =
            new ClassPathXmlApplicationContext(\"stackoverflow.xml\");

        AppConfig appConfig = context.getBean(AppConfig.class);
        appConfig.getConfig(\"smtp.host\");
    }
}
    
您是否也尝试使用注解
@Autowired
而不是
@Inject
?     

要回复问题请先登录注册