#java #spring
#java #spring
Вопрос:
Я только что переместил некоторые файлы в свой проект, и spring boot не запускается
.
├── DatabaseLoader.java
├── HomeController.java
├── product
│ ├── Product.java
│ └── ProductRepository.java
├── security
│ ├── JWTAuthenticationFilter.java
│ ├── JWTAuthorizationFilter.java
│ ├── SecurityConstants.java
│ └── WebSecurity.java
├── ShopApplication.java
└── user
├── ApplicationUser.java
├── ApplicationUserRepository.java
├── UserController.java
└── UserDetailsServiceImpl.java
Это потому, что контроллеры должны были находиться в той же папке, что и ShopApplication (@SpringBootApplication)?
Spring показывает это описание:
The bean 'productRepository', defined in com.ecommerce.shop.product.ProductRepository defined in
@EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration,
could not be registered. A bean with that name has already been defined in
com.ecommerce.shop.ProductRepository defined in @EnableJpaRepositories declared on
JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration and overriding is disabled.
Если информации недостаточно, вы можете проверить мой репозиторий github здесь
Я был бы очень благодарен за любое внимание. Спасибо!
Комментарии:
1. Вы переместили его, не очистили проект и просто перезапустили. Старый файл класса все еще там. Очистите и перестройте проект
Ответ №1:
Кажется, что вы можете использоваться @EnableJpaRepositories
несколько раз. В ваших классах репозитория @Repository
было бы достаточно просто их аннотировать.
@Repository
public interface ProductRepository extends JpaRepository<Product, Long> {
}
Комментарии:
1.
@Repository
Включение туда ничего не дает. Размещение его в интерфейсе практически бесполезно. Spring Data обнаруживает их другими способами, и сканирование компонентов их игнорирует.