Skip to content

Latest commit

 

History

12 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Sweater - Spring Boot приложение

Учебный проект на Spring Boot - веб-приложение для управления сообщениями пользователей.

Используемые технологии

  • Java 17
  • Spring Boot 3.2.0
  • Spring Web MVC
  • Spring Security 6 (совместимость с Jakarta EE)
  • Spring Data JPA
  • Apache Freemarker (шаблонизатор)
  • PostgreSQL (база данных)
  • Maven (инструмент сборки)

Структура проекта

src/main/java/com/example/sweater/
├── Application.java          # Точка входа приложения
├── config/                   # Классы конфигурации
│   ├── MvcConfig.java       # Конфигурация MVC
│   └── WebSecurityConfig.java # Конфигурация безопасности
├── controller/               # Контроллеры
│   ├── MainController.java
│   ├── RegistrationController.java
│   └── UserController.java
├── domain/                   # Сущности
│   ├── Message.java
│   ├── Role.java
│   └── User.java
├── repos/                    # Репозитории
│   ├── MessageRepo.java
│   └── UserRepo.java
└── service/                  # Слой бизнес-логики
    ├── MessageService.java  # Сервис сообщений
    └── UserService.java     # Сервис пользователей

Возможности

  • Регистрация и аутентификация пользователей
  • Хеширование паролей (BCrypt)
  • Ролевая модель доступа (Spring Security)
  • Управление сообщениями с пагинацией
  • Редактирование профиля пользователя
  • Веб-интерфейс на Freemarker шаблонах
  • Валидация входных данных

Предварительные требования

  • JDK 17 или выше
  • Maven 3.9.x или выше
  • PostgreSQL (локально или удалённо)

Конфигурация

Настройка базы данных

Подключение к PostgreSQL настраивается через переменные окружения или значения по умолчанию в application.properties:

spring.datasource.url=jdbc:postgresql://localhost:5432/sweater_db
spring.datasource.username=${DB_USERNAME:postgres}
spring.datasource.password=${DB_PASSWORD:postgres}
spring.jpa.hibernate.ddl-auto=update

Рекомендуется использовать переменные окружения для продакшена:

export DB_USERNAME=your_username
export DB_PASSWORD=your_secure_password

Создание базы данных

CREATE DATABASE sweater_db;

Сборка и запуск

Сборка проекта

mvn clean package

Запуск приложения

mvn spring-boot:run

Или запустить скомпилированный JAR:

java -jar target/sweater-1.0-SNAPSHOT.jar

Доступ к приложению

После запуска откройте браузер и перейдите по адресу:

http://localhost:8080

Архитектурные особенности

Многоуровневая архитектура

Приложение построено по принципу разделения ответственности:

  1. Контроллеры (Controller) - обработка HTTP-запросов и возврат представлений
  2. Сервисы (Service) - бизнес-логика, валидация, транзакции
  3. Репозитории (Repository) - доступ к данным через Spring Data JPA
  4. Доменная модель (Domain) - сущности базы данных

Безопасность

  • Пароли хранятся в хешированном виде (BCrypt)
  • Настроена ролевая модель (USER, ADMIN)
  • Защита от CSRF-атак
  • Валидация входных данных на уровне сервиса

Производительность

  • Пагинация сообщений (10 записей на страницу)
  • Ленивая загрузка связанных сущностей (FetchType.LAZY)
  • Оптимизированные запросы к базе данных

Разработка

Проект использует Spring Boot DevTools для горячей перезагрузки во время разработки.

Основные улучшения в проекте

  • ✅ Хеширование паролей при регистрации
  • ✅ Удаление хардкода учётных данных БД
  • ✅ Валидация входных данных
  • ✅ Слой сервисов для бизнес-логики
  • ✅ Принцип единой ответственности (SRP)
  • ✅ Пагинация данных
  • ✅ Обработка ошибок

Лицензия

Учебный проект для изучения фреймворка Spring Boot.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages