2017-09-17 44 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'来使它工作。 –

相关问题