2011-03-29 4 views
0

у меня есть что-то вроде этого:+ весна Скала, кажется, игнорирует Qualifier аннотацию

class MyBean { 
    @Autowired 
    @Qualifier("jdbcTemplate") 
    @BeanProperty 
    var jdbcTemplate : JdbcTemplate = null 
} 

Spring жалуется, что не может найти компонент типа JdbcTemplate и отказывается autowire. Мой spring.xml имеет:

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate"> 
    <constructor-arg ref="dataSource" /> 
</bean> 

Если изменить тип JdbcTemplate в MyBean от JdbcTemplate до SimpleJdbcTemplate затем он работает. Мой вопрос в том, почему он, по-видимому, игнорирует аннотацию Qualifier? Я делаю что-то неправильно?

ответ

2

Это не имеет никакого отношения к @Qualifier. SimpleJdbcTemplate не является подклассом JdbcTemplate, поэтому он не может быть введен в поле типа JdbcTemplate.

+1

Lame. Я предположил, что JdbcTemplate - это интерфейс, а SimpleJdbcTemplate - это конкретная реализация. Виноват. Изнашивание Весны здесь нехарактерно дрябло. – Kevin