Тема: Разработка микросервисной платформы для торговой площадки организаций на базе Spring Boot и Cloud
Работа размещена на docs.google.com.
Для демонстрации своих практических навыков полученных в результате обучения мной разработано микропоцессоное веб-приложение salesAccounting:
- на языке программирования: Java
- с использованием фреймворка: Spring Boot
SalesAccounting - это система для автоматизации процессов купли-продажи, предназначенная для управления продуктами, заказами и организациями. Проект состоит из двух основных частей: серверной части (productDB) и клиентской части (wholeSale).
Серверная часть отвечает за управление базой данных, содержащей информацию о продуктах, заказах, документах, сотрудниках и организациях.
- Spring Boot: Фреймворк для создания stand-alone, production-grade Spring приложений.
- Spring Data JPA: Инструмент для взаимодействия с базой данных.
- PostgreSQL: Используется в качестве основной базы данных.
- Spring Cloud Netflix Eureka: Сервис для регистрации и обнаружения микросервисов.
- Spring Security: Обеспечивает безопасность приложения.
- JUnit: Фреймворк для модульного тестирования.
- Управление продуктами: создание, обновление, удаление и поиск продуктов.
- Управление заказами: создание, обновление, подтверждение, отмена и поиск заказов.
- Управление документами: создание документов на основе заказов, поиск и удаление документов.
- Управление сотрудниками: регистрация, аутентификация, клонирование и удаление сотрудников.
- Управление организациями: регистрация, аутентификация, обновление и удаление организаций.
productDB
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── productdb
│ │ │ │ ├── config
│ │ │ │ ├── controller
│ │ │ │ ├── exception
│ │ │ │ ├── model
│ │ │ │ ├── repository
│ │ │ │ ├── service
│ │ │ │ └── specification
│ │ ├── resources
│ └── test
└── pom.xml
Клиентская часть предоставляет веб-интерфейс для взаимодействия с системой.
- Spring Boot: Фреймворк для создания stand-alone, production-grade Spring приложений.
- Thymeleaf: Шаблонизатор для создания динамических веб-страниц.
- Spring Cloud Netflix Eureka: Сервис для регистрации и обнаружения микросервисов.
- JUnit: Фреймворк для модульного тестирования.
- Аутентификация и регистрация сотрудников и организаций.
- Управление продуктами: создание, обновление, удаление и просмотр продуктов.
- Управление заказами: создание, обновление, подтверждение, отмена и просмотр заказов.
- Управление документами: просмотр документов по покупателю и продавцу.
- Управление сотрудниками: просмотр и редактирование информации о сотрудниках.
- Управление организациями: просмотр и редактирование информации об организациях.
wholeSale
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── wholesale
│ │ │ │ ├── config
│ │ │ │ ├── controller
│ │ │ │ ├── exception
│ │ │ │ ├── model
│ │ │ │ ├── service
│ │ │ └── WholeSaleApplication.java
│ │ ├── resources
│ │ ├── static
│ │ └── templates
│ └── test
└── pom.xml
git clone https://github.com/yourusername/salesAccounting.git
cd salesAccounting
docker-compose up --build
- Eureka Server: http://localhost:8761
- Клиентская часть: http://localhost:8081
Файлы конфигурации содержат настройки для работы приложения:
- AppConfig: Основная конфигурация приложения.
- WebConfig: Конфигурация для настройки веб-приложения.
- BasicAuthInterceptor: Перехватчик для добавления базовой аутентификации в запросы.
Контроллеры обрабатывают входящие HTTP-запросы и взаимодействуют с сервисами для выполнения бизнес-логики:
- DocumentController: Управление документами.
- EmployeeController: Управление сотрудниками.
- ErrorController: Обработка ошибок.
- HomeController: Главная страница.
- LoginController: Аутентификация и регистрация.
- LogoutController: Завершение сеанса.
- OrderController: Управление заказами.
- OrganizationController: Управление организациями.
- ProductController: Управление продуктами.
Модели представляют сущности приложения и содержат бизнес-логику:
- Document: Документ, связанный с заказом.
- DocumentItem: Позиция в документе.
- Employee: Сотрудник.
- Order: Заказ.
- OrderItem: Позиция в заказе.
- Organization: Организация.
- Product: Продукт.
Сервисы выполняют бизнес-логику и взаимодействуют с репозиториями для доступа к данным:
- DocumentService: Управление документами.
- EmployeeService: Управление сотрудниками.
- OrderService: Управление заказами.
- OrganizationService: Управление организациями.
- ProductService: Управление продуктами.
Обработка исключений и ошибок в приложении:
- GlobalExceptionHandler: Глобальный обработчик исключений.
- ServiceException: Кастомное исключение для сервисного слоя.