2016-04-01 38 views
3

'u genişleten arabirim için çekirdek oluşturamadı. Spring JPA Deposuyla çalışırken sorunlarla karşılaşıyorum. Temel kullanıcı etki alanı sınıfı (@Entity), CrudRepository ve hizmet katmanı uygulaması genişleten bir arabirim UserDao oluşturduk. Projeyi çalıştırdığımda UserDao fasulyesi oluşturma istisnasından dolayı başarısız oluyor. Anladığım kadarıyla bu arayüz için fasülyeyi yaratmak için Spring JPA depolarının sorumluluğu (CrudRepository'u uzattığı için) ve gerektiğinde onu enjekte et. İstisna bağlam başlatma sırasında karşılaşılan - - yenileme Girişiminden org.springframework.beans iptal org.springframework.web.context.support.AnnotationConfigWebApplicationContext : Spring JPA Data Repository, CrudRepository

WARN:

Bu

i alıyorum hatadır. factory.BeanCreationException: 'UserController' adıyla fasulye yaratılırken Hata : Otomatik kablolu bağımlılıkları başarısız oldu; iç içe istisna org.springframework.beans.factory.BeanCreationException: otowire alanı olamazdı: özel edu.sjsu.services.UserService edu.sjsu.controllers.UserController.userService; iç içe istisna org.springframework.beans.factory.BeanCreationException: Hata 'userServiceImpl' ismiyle fasulye yaratılıyor: Otomatik kablolu bağımlılıkları başarısız oldu; iç içe istisna org.springframework.beans.factory.BeanCreationException: otowire alanı olamazdı: edu.sjsu.models.UserDao edu.sjsu.services.UserServiceImpl.userDao; İç içe istisna org.springframework.beans.factory.NoSuchBeanDefinitionException şudur: Bu bağımlılık için autowire adayı olarak nitelendirir beklenen en az 1 fasulyesi: tipteki bir eleme fasulye [edu.sjsu.models.UserDao] bağımlılık bulundu. Bağımlılık açıklamalar: org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues ​​(AutowiredAnnotationBeanPostProcessor.java:334)

de {org.springframework.beans.factory.annotation.Autowired @ (= doğru gerekli)}

UserDao.Java:

package edu.sjsu.models; 

import org.springframework.data.jpa.repository.JpaRepository; 
import org.springframework.data.repository.CrudRepository; 

public interface UserDao extends CrudRepository<User, Long> {} 

RootConfig.Java:

@Configuration 
@ComponentScan(basePackages={"edu.sjsu"}, excludeFilters={@Filter(type=FilterType.ANNOTATION, value=EnableWebMvc.class)}) 
@Import(JpaConfig.class) 
public class RootConfig {} 

JpaConfig.java Spring JPA kullanıyor olsam buna ihtiyacım yok ama yine de bu config sınıfını kılavuzlar ve öğreticiler takip ettim. Durumun anlaşılması için başka yapılandırma ve java sınıflarına ihtiyacınız varsa, bana bildirin. EnableJpaRepositories yılında

cevap

7

Kullanım basePackages: Varsayılan olarak

@Configuration 
@EnableJpaRepositories(basePackages = "edu.sjsu.models") 
@EnableTransactionManagement 
public class JpaConfig { ... } 

, EnableJpaRepositories Bahar Veri depoları için açıklamalı yapılandırma sınıfının paketini tarar. Tahmin ettiğim gibi, konfigürasyon ve depo sınıflarınız farklı paketlerde olduğundan, JPA depolarını bulmak için taranacak temel paketleri Spring Data JPA'ya söylemelisiniz.

+0

Fabrikada paket olarak adlandırılacak paketleri açıkça belirledim.setPackagesToScan ("edu.sjsu"); –

+0

Bu sizin varlıklarınız içindir. Bunlar, @ Entity ile açıklanmıştır. –

+1

Çalıştı. Yapmam gereken ek bir şey org.hibernate hazırda-EntityManager zaten hazırda JPA-2.1-api sayesinde Ali –

İlgili konular