在main方法中初始化spring环境,注入bean

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

在main方法中初始化spring环境,注入bean的相关文章

非Spring环境注入bean

在有些不属于spring容器里的环境,想使用getBean的方式注入的话,在spring的Application.xml里面配置这条bean. 这种方式相当于将bean注入spring环境中去. 调用方式为下图: 这样就完成了非Spring环境的bean注入

输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩 从大到小打印。三个功能(输入是一个函数,求平均分是一个函数,排序是一个 函数)都用函数实现,最后在main方法中调用。

/*5.输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩从大到小打印.三个功能(输入是一个函数,求平均分是一个函数,排序是一个函数)都用函数实现,最后在main方法中调用.*/ #include <stdio.h> int inputScore(){ int score; scanf("%d",&score); return score;} double avg(int scores[],int length){ int i,score = 0;

通过函数实现打印*号组成的直角三角形,函数要求传入行数即可。在main 方法中,通过用户输入得到行数,然后调用函数做打印。

#include <stdio.h> /* 1.通过函数实现打印*号组成的直角三角形,函数要求传入行数即可.在main方法中,通过用户输入得到行数,然后调用函数做打印.三角形样式:********************* */ int sanjiao(int hang){ int i; int j; for(i = 0; i < hang;i++) { for(j = 0;j <i+1;j++) { printf("*"); } printf("\n

eclipse中配置spring环境

初识Spring框架 1.简单使用 eclipse中配置Spring环境,如果是初学的话,只需要在eclipse中引入几个jar包就可以用了, 在普通java project项目目录下,建一个lib文件夹,将常用的jar包导入,并Build Path. jar包资源下载:http://pan.baidu.com/s/1pKAP8gj 这样就可以快速进行Spring的简单学习了 2.正常使用 要使用Spring的完整功能还需要下载 Spring Tool Suite 与 完整版的 spring-f

JavaSE7基础 main方法中 String[] args的用法

版本参数:jdk-7u72-windows-i586注意事项:博文内容仅供参考,不可用于其他用途. 代码 class Demo{ //main方法中String[] args的用途 //接收调用main方法是 传入的字符串参数 public static void main(String[] args){ //看String数组的长度,即有几个字符串 System.out.println(args.length); for(int i=0,length=args.length;i<length;

Main方法中传入参数

↓ 这个时候会报错: Instantiate the class:DonutShop java.lang.ClassNotFoundException: DonutShop    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)    at java.security.AccessController.doPrivileged(Native Method)    at java.net.URLClassLoader.findCla

在普通类中获取Spring管理的bean

1.在项目中添加下面的类: import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; /** * 以静态变量保存Spring ApplicationContext, 可在任何代码任何地方任何时候中取出ApplicaitonContext. * */ public class SpringContextHolder implem

main方法中窥世界

今天我们来看一个编程语言入门必演示的HelloWorld程序,借此来展示我们的重点知识.话不多说,先看代码. 本段代码在eclipse中编辑运行,怎么在eclipse中新建项目呢:点击左上角File选择New一个Project.虽然本例仅仅实现了一个简单的输出HelloWorld一行字符串的简单功能,但是万丈高楼平地起,一个工程所需要的东西它都有.目录结构如下: src文件夹中包含有多个包,包里有java源代码文件.为什么要分这么多层呢?主要便于文件组织和管理.把不同类型的文件放在不同的包里,这

main方法中参数&quot;String[ ] args&quot;详解

1.在编写完一个有主方法的java文件时,需要在cmd窗口中先编译此java文件(javac xxx.java),然后再运行(java xxx) 其实在运行java xxx的时候如果后面跟着参数用空格分开,则将这参数保存到了String类型的数组中也就是main方法 的参数String [] args中 2.方法测试 public class HelloWorld { public static void main(String[] args) { if(args.length != 2){ S