public static voidmain(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 voidmain(String[] args) {
LOGGER.info("==启动APP日志队列程序==");//SpringUtils.getBean(UserAppLogConsumerListener.class);
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
}