2017-09-17 46 views
0

我跟隨this tutorial,我在啓動我的應用程序時遇到了一些麻煩。Field ** in com。**需要無法找到'com。**'類型的bean

當我在後端文件夾我碰到下面的錯誤運行mvn spring-boot:run

Field movieRepository in com.movieseat.services.impl.MovieServiceImpl required a bean of type 'com.movieseat.repositories.MovieRepository' that could not be found.

MovieServiceIml.java

package com.movieseat.services.impl; 

// Java imports 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 

// Spring imports 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 

// Project imports 
import com.movieseat.models.Movie; 
import com.movieseat.services.MovieService; 
import com.movieseat.repositories.MovieRepository; 

@Service 
public class MovieServiceImpl implements MovieService { 

    @Autowired private MovieRepository movieRepository; 

    @Override public List<Movie> getAllmovies() { 
     List<Movie> movies = new ArrayList<Movie>(); 
     Iterator<Movie> iterator = movieRepository.findAll().iterator(); 
     while (iterator.hasNext()) { 
      movies.add(iterator.next()); 
     } 

     return movies; 
    } 

} 

MovieRepository.java

package com.movieseat.repositories; 

// Java imports 
import java.io.Serializable; 

// Spring imports 
import org.springframework.data.repository.CrudRepository; 
import org.springframework.stereotype.Repository; 

// Project imports 
import com.movieseat.models.Movie; 

@Repository 
public interface MovieRepository extends CrudRepository<Movie, Serializable> {} 

使用下面的結構:

  • COM
    • movieseat
      • Application.java
      • 控制器
        • MovieController.java
      • 車型
        • MovieModel.java
        • MovieRepository.java
      • 服務
        • IMPL
          • MovieServiceImpl.java
        • MovieService.java

這是我Application.java:

package com.movieseat; 

// Spring importss 
import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.boot.web.support.SpringBootServletInitializer; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.data.jpa.repository.config.EnableJpaRepositories; 

@SpringBootApplication 
@ComponentScan({"com.movieseat.*"}) 
@EnableJpaRepositories("com.movieseat.repositories.*") 
public class Application extends SpringBootServletInitializer { 
    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

我的想法是,使用@EnableJpaRepositories("com.movieseat.repositories.*")將使所有存儲庫訪問。但我做錯了什麼。

回答

1

嘗試沒有*(通配符),

@EnableJpaRepositories("com.movieseat.repositories") 

確保您有@Entity註釋您Movie

+0

這樣做。我還必須在模型中添加'import javax.persistence.Id;'和'@ id'來使它工作。 –

相關問題