java - 抽象类、接口(interface)和 Autowiring

标签 java spring annotations autowired

我有以下主类:

public class Startup implements UncaughtExceptionHandler {

@Autowired
private MessageListener messageListener;

private static Startup startup;

public static void main(String[] args) {
        Startup start = new Startup();
        start.init(args); 
}

public void init(String[] args) {

    context = new ClassPathXmlApplicationContext("applicationContext.xml");
    startup = (Startup) context.getBean( "startup" );
    startup.start(); //here the messageListener is used
}

//这里是调用使用 messageListener 的方法的主类

@Component
public class ProdMessageListener 
    extends AbstractMessageListener implements MessageListener {...}

public abstract class AbstractMessageListener 
    implements MessageListener {...}

还有

@Component
public interface MessageListener extends QueueAware {...}

@Component
public interface QueueAware {...}

我的 Spring 上下文用于定位所有类和接口(interface)。 然而,这个 bean 没有被识别,我得到:

No qualifying bean of type [com.ware.messaging.listener.MessageListener] found for dependency.

知道为什么 Autowiring 不起作用吗?

最佳答案

只需确保您已将基础包添加到如下所示的 spring 上下文配置中,以允许 spring 将所有组件加载到容器中

 <context:component-scan base-package="pakage1.package2"/>

关于java - 抽象类、接口(interface)和 Autowiring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15951286/

相关文章:

java - 从 application.yml 读取属性时忽略 Spring 配置文件

java - getAnnotations() 为空

Java 注释处理器 : Usage & Applications

java - 我应该如何在 Java 中实现列表中的列表?或者有比列表列表更好的方法吗?

java - 在带有泛型参数的泛型方法中使用 Spring RestTemplate

java - "new Foo(){}"与 Java 中的 "new Foo()"

java - 为基于注释的 Spring MVC Controller 设置混合配置

annotations - Annotation 中的多个验证选项

java - 在 Java 中将 XML 转换为没有属性的 JSON 的简洁有效的方法是什么?

java - 再次玩猜数字游戏