Я использую весеннюю загрузку и дизайн несколькими модулями. Ниже структура моего проекта:
Ядро магазина модулей: Имя пакета: com.baotrung.core.business Я проектирую некоторый подпакет: модель, репозитории, сервисы
Maven:
<modelVersion>4.0.0</modelVersion>
<artifactId>shop-core</artifactId>
<packaging>jar</packaging>
<dependencies>
<!-- shop-core-model !-->
<dependency>
<groupId>com.baotrung</groupId>
<artifactId>shop-core-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
CategoryService
public interface CategoryService {
List<Object> countProductsByCategories(MerchantStore store, List<Long> categoryIds);
List<Category> listByStoreAndParent(MerchantStore store, Category category);
PersistableCategory saveCategories(MerchantStore store, PersistableCategory persistableCategory);
Category findById(Long id);
List<ReadableCategory> findCategories(MerchantStore store, int dept, Language language,List<String> filters);
}
Категории Сервис Impl
@Service
public class CategoryServiceImpl implements CategoryService {
@Autowired
private CategoriesRepository categoryRepository;
@Autowired
private LanguageRepository languageRepository;
@Autowired
private Mapper<Category,ReadableCategory> categoryReadableCategoryMapper;
//some method
@ Репозиторий
public interface CategoriesRepository extends CrudRepository<Category, Long>, CategoryRepositoryCustom {
}
public interface CategoryRepositoryCustom {
List<Object> countProductsByCategories(MerchantStore store, List<Long> categoryIds);
List<Category> listByStoreAndParent(MerchantStore store, Category category);
}
@Repository
public class CategoryRepositoryCustomImpl implements CategoryRepositoryCustom {
// some method impl
}
Я также создаю модуль shopping-ap p и использовал shop-code зависимость вЭто. Выглядит как:
Maven:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>spring-shopping-project</artifactId>
<groupId>com.baotrung</groupId>
<version>0.0.1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>shopping-app</artifactId>
<dependencies>
<dependency>
<groupId>com.baotrung</groupId>
<artifactId>shop-core-model</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>com.baotrung</groupId>
<artifactId>shop-core</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
и в модуле shopping-app я создаю пакет com.baotrung.web и создаю несколькосубпакет: хранилище , сервисы , модель ... и создание приложения с именем Application.class выглядит так:
@SpringBootApplication(scanBasePackages = {"com.baotrung.core.business","com.baotrung.*"})
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
}
Но когда я загружаюсь Application.class это вызывает у меня исключение
Field categoryRepository in com.baotrung.core.business.services.CategoryServiceImpl required a bean of type 'com.baotrung.core.business.repositories.CategoriesRepository' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.baotrung.core.business.repositories.CategoriesRepository' in your configuration.
Я не могу понять почему, потому что я добавил аннотацию в CategoriesRepository с @ хранилищем , как указано выше в модуле com.baotrung.core.business.repositories.CategoriesRepository . Почему весна не может найти меня боб из com.baotrung.core.business.repositories , потому что это действительно определить. Пожалуйста, помогите мне?