public static void main(String[] args) { LOGGER.info("==启动APP日志队列程序=="); SpringUtils.getBean(UserAppLogConsumerListener.class); }
一开始我是使用自定义的spring工具类的getBean方法进行初始化,但是存在问题:配置文件中用有引用UserAppLogConsumerListener这个bean,导致报错expected single matching bean but found 2
Exception in thread "main" org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type ‘com.cdd.rabbitmq.consume.listener.UserAppLogConsumerListener‘ available: expected single matching bean but found 2: userAppLogConsumerListener,userAppReceiver at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1039) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:339) at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:334) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1107) at com.cdd.core.utils.SpringUtils.getBean(SpringUtils.java:28) at com.cdd.rabbitmq.consume.Main.main(Main.java:23)
然后换了一种方式,直接根据配置文件加载ApplicationContext,成功
public static void main(String[] args) { LOGGER.info("==启动APP日志队列程序=="); // SpringUtils.getBean(UserAppLogConsumerListener.class); ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); }
原文地址:https://www.cnblogs.com/volcano-heaven/p/9283677.html
时间: 2024-11-06 03:28:47