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