私は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> {}
次のような構造が使用されています:
- コム
- movieseat
- Application.java
- コントローラ
- MovieController.java
- モデル
- MovieModel.java
- リポジトリ
- MovieRepository.java
- サービス
- IMPL
- MovieServiceImpl.java
- MovieService.java
- IMPL
- movieseat
そして、これは私の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.*")
を使用すると、すべてのリポジトリにアクセスできるようになることです。しかし、私は何か間違っている。
それはトリックでした。私は 'import javax.persistence.Id;'と '@ id'をモデルに追加してそれを動作させる必要もありました。 –