限定符不起作用(这很奇怪)

时间:2016-08-10 11:02:16

标签: spring

xmlBean非常有效(当注释了stampyDataSource bean的定义时,出现了错误)。但是mysqlDataSource却没有。无法弄清楚原因。

public class MyXmlBean {
public void test(){
    System.out.println("AAAAAAAAA");
}
}

spring.xml

    

<bean id="sjnDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/rule360_site" />
    <property name="username" value="root" />
    <property name="password" value="root" />
    <property name="maxActive" value="255" />
    <property name="maxIdle" value="2" />
    <property name="maxWait" value="1200" />
</bean>

<bean id="stampyDataSource"  class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="org.apache.hive.jdbc.HiveDriver" />
    <property name="url" value="jdbc:hive2://192.168.99.100:10000" />
    <property name="username" value="" />
    <property name="password" value="" />
    <property name="maxActive" value="255" />
    <property name="maxIdle" value="2" />
    <property name="maxWait" value="1200" />
</bean>

使用地点

@Autowired
@Qualifier("sjnDataSource")
private BasicDataSource mysqlDataSource;


@Autowired
@Qualifier("first")
private MyXmlBean xmlBean;

错误

申请失败

说明

com.paypal.risk.dna.rca.GreetingController中的字段mysqlDataSource需要一个bean,但是找到了2个:      - sjnDataSource:在类路径资源[META-INF / spring.xml]中定义      - stampyDataSource:在类路径资源[META-INF / spring.xml]

中定义

动作:

考虑将其中一个bean标记为@Primary,更新使用者以接受多个bean,或使用@Qualifier标识应该使用的bean

引起:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为'greetingController'的bean时出错:通过字段'mysqlDataSource'表示的不满意:创建名为'sjnDataSource'的bean在类路径资源中定义时出错[META- INF / spring.xml]:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'dataSourceInitializer'的bean时出错:init方法的调用失败;嵌套异常是org.springframework.beans.factory.NoUniqueBeanDefinitionException:没有定义类型[javax.sql.DataSource]的限定bean:期望的单个匹配bean但找到2:sjnDataSource,stampyDataSource;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建在类路径资源[META-INF / spring.xml]中定义名称为'sjnDataSource'的bean时出错:bean的初始化失败;嵌套异常是org.springframework.beans.factory.BeanCreationException:创建名为'dataSourceInitializer'的bean时出错:init方法的调用失败;嵌套异常是org.springframework.beans.factory.NoUniqueBeanDefinitionException:没有定义[javax.sql.DataSource]类型的限定bean:期望的单个匹配bean但找到2:sjnDataSource,stampyDataSource

0 个答案:

没有答案