ich folgende Fehlermeldung weiterhin erhalten:Unable Frühjahr Repository Bohnen autowire
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type 'StorageItemRepository'
Mein beans.xml gesetzt ist alles zu finden - in META-INF/beans.xml jede Modul Ressourcendatei. Meine Repository-Klasse hat @Repository und meine web.xml ist definitiv konfiguriert, um die Bean zu finden.
Es ist erwähnenswert - das funktioniert, wenn entfaltet - nur nicht für den untenstehenden Komponententest.
My Unit-Test:
/**
* Test for {@link StorageItemRepository}
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:JDBCConfig.xml"})
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = {"com.app.storage.persistence.repository"})
public class StorageItemRepositoryTest {
/** {@link StorageItemRepository} */
@Autowired
private StorageItemRepository storageItemRepository;
/**
* Finds all storage items in db.
*/
@Test
public void checkFindAllItems(){
final StorageItemPersistenceModel storageItemPersistenceModel = new StorageItemPersistenceModel();
storageItemPersistenceModel.setId(1L);
storageItemPersistenceModel.setDateStored(new DateTime());
storageItemPersistenceModel.setName("Name");
storageItemRepository.save(storageItemPersistenceModel);
}
}
JDBCConfig Datei:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean name="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/storage_app_schema" />
<property name="username" value="root" />
<property name="password" value="dollar123" />
</bean>
<bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="packagesToScan" value="com.app.storage.persistence.model" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter" ref="jpaVendorAdapter"/>
<property name="persistenceUnitName" value="app_test"/>
<property name="jpaProperties">
<props>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true"/>
<property name="generateDdl" value="true"/>
<property name="databasePlatform" value="org.hibernate.dialect.MySQLDialect"/>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="myEmf"/>
</bean>
</beans>
Die persistence.xml auf jeden Fall in Ordnung ist und die Arbeit, die Ursache so nicht.
Sind verwenden Sie Spring Boot? Ich glaube, dass '@ EnableJpaRepositories' andere Spring Boot-Konfigurationsmöglichkeiten deaktiviert ... Konnten Sie versuchen, META-INF/beans.xml auch in der Einheit' @ ContextConfiguration' zu laden? – gtosto
Immer noch das gleiche Problem .. –
In meinem Fall habe ich den Test mit '@ TransactionConfiguration' zusammen mit' @ContextConfiguration() '&' @RunWith (SpringJUnit4ClassRunner.class) 'notiert, ohne' @ EnableTransactionManagement' & '@ EnableJpaRepositories', und es funktioniert gut. –