2013-06-23 3 views
0

мой dao реализация;spring dataSource config. с аннотациями

\\here are imports... 
@Repository 
public class CompanyDaoImp extends JdbcDaoSupport implements CompanyDao { 


private static final String INSERTCOMPANY = "INSERT INTO b_company" 
     + "(NAME)VALUES(?)"; 

Это моя фасоль;

<?xml version="......... 

<!-- TODO add the component-scan and annotation-config elements --> 

<context:annotation-config/> 
<context:component-scan base-package="com.some.company"/> 



<bean id="companyAppDataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
<property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
<property name="url" value="jdbc:mysql://localhost:3306/companyapp"/> 
<property name="username" value="root"/> 
<property name="password" value="root"/> 
</bean> 
</beans> 

Я не мог понять, почему я продолжаю исключение; ....... Ошибка вызова метода init; вложенное исключение java.lang.IllegalArgumentException: требуется «DataSource» или «JdbcTemplate» .........

ответ

0

JdbcDaoSupport не имеет аннотацию автоматически впрыскивать DataSource. Вы должны переопределить метод setDataSource так:

<bean name="companyDaoImp" class="...CompanyDaoImp"> 
    <property name="dataSource" ref="companyAppDataSource" /> 
</bean> 

Spring не может вводить автоматически DataSource, потому что вы можете иметь несколько источников данных, и в этом случае необходимо было бы сказать Spring, который один вам нужно.

+0

Я думаю, что setDataSource является окончательным, поэтому я не могу его переопределить. Второй золь. работает, но есть ли способ сделать это с помощью только аннотаций (кроме фаз источника данных). – cek

+0

@cek. Вы правы. Я не заметил. Я удалил это в ответ. Сожалею. – LaurentG

+0

без проблем. вы думаете, если я делаю ошибки при определении источника данных? – cek