Skip to content

hydroponic/javatemplates

Repository files navigation

Практическая работа №1

Тема:

Знакомство со встроенными функциональными интерфейсами Java. Возможности Java 8. Лямбда-выражения. Области действия, замыкания. Предикаты. Функции. Компараторы.

Постановка задачи:

Имплементировать интерфейс Predicate, определяющий, является ли данная строка PIN-кодом (содержит ровно 4 цифры или 6 цифр).

Практическая работа №2

Тема:

Работа со Stream API в Java 8.

Постановка задачи:

реализовать: 1) класс Human (int age, String firstName, String lastName, LocalDate birthDate, int weight); 2) приложение, которое создает список из объектов класса Human, а затем производит фильтрацию по признаку «вес больше, чем возраст», сортировку по фамилии в обратном порядке, сумму всех весов.

Практическая работа №3

Тема:

Знакомство с конкурентным программированием в Java. Потокобезопасность, ключевое слово syncrhonized, мьютексы, семафоры, мониторы, барьеры.

Постановка задачи:

Создать свои потокобезопасные имплементации интерфейсов: List с использованием Lock, Map с использованием Semaphore.

Практическая работа №4

Тема:

Работа с ExecutorService, CompletableFuture.

Постановка задачи:

Реализовать собственную имплементацию ExecutorService с единственным параметром конструктора – количеством потоков.

Практическая работа №5

Тема:

Познакомиться с паттернами проектирования, их определением и классификацией. Обзор паттернов GoF. Паттерн Синглтон.

Постановка задачи:

Реализовать паттерн Singleton как минимум 3-мя способами.

Практическая работа №6

Тема:

Знакомство с реализацией порождающих паттернов проектирования.

Постановка задачи:

Написать реализацию паттернов «Фабричный метод», «Абстрактная фабрика», «Строитель», «Прототип».

Практическая работа №7

Тема:

Реализация структурных паттернов проектирования.

Постановка задачи:

Написать реализацию паттернов Декоратор, Легковес.

Практическая работа №8

Тема:

Реализация структурных паттернов проектирования.

Постановка задачи:

Написать реализацию паттернов Шаблонный метод, Посетитель.

Практическая работа №9

Тема:

Знакомство с системой сборки приложения. Gradle.

Постановка задачи:

Создать приложение, которое выводит какое-то сообщение в консоль. Создать Gradle Task, который создает jar-файл приложения, переносит его в отдельную папку, в которой хранится Dockerfile для jar, а затем создает Docker контейнер из данного jar-файла и запускает его.

Практическая работа №10

Тема:

Введение в Spring. Container. Bean. Внедрение зависимостей, основанных на конструкторах и сеттерах. Конфигурация бинов. Автоматическое обнаружение и связывание классов.

Постановка задачи:

Создать приложение, в котором создается ApplicationContext и из него берётся бин с названием, переданным в качестве аргумента к приложению, и вызывается метод интерфейса, который он имплементирует. Нужно создать по одному бину для каждого класса, определить им название. Проверить, что вызывается при вводе названия каждого из бинов. Классы и интерфейс: Интерфейс Musician с методом doCoding(), его имплементации: Drummer, guitarist, trombonist.

Практическая работа №11

Тема:

Разобраться с использованием Spring boot.

Постановка задачи:

Создать приложение с использованием Spring Boot Starter Initializr (https://start.spring.io/) с такими зависимостями:
– Spring Web;
– Lombok;
– Validation;
– Spring boot Actuator.
Запустить приложение и удостовериться, что не появилось никаких ошибок. Добавить все эндпоинты в Actuator, сделать HTTP-запрос на проверку состояния приложения. Собрать jar-файл приложения, запустить и проверить состояние при помощи REST-запроса.

Практическая работа №12

Тема:

Работа с жизненным циклом компонентов. Аннотации PostConstruct, PreDestroy..

Постановка задачи:

Создать приложение, которое при запуске берет данные из одного файла, хеширует, а при остановке приложения удаляет исходный файл, оставляя только файл с захешированными данными. Названия первого и второго файла передаются в качестве аргументов при запуске. При отсутствии первого файла создает второй файл и записывает в него строку null. Реализовать с использованием аннотаций PostConstruct, PreDestroy.

Практическая работа №13

Тема:

Конфигурирование приложения. Environment.

Постановка задачи:

Создать файл application.yml в папке resources, добавить в него такие свойства:
– student.name – имя студента;
– student.last_name – фамилия студента;
– student.group – название группы студента.
При запуске приложения выведите данные свойства в консоль при помощи интерфейса Environment или аннотации Value.

Практическая работа №14

Тема:

Знакомство со Spring MVC. Работа с Rest API в Spring.

Постановка задачи:

Создать отдельный репозиторий Git. Создать простой html-документ, который будет содержать вашу фамилию, имя, номер группы, номер варианта. Создать контроллер, который будет возвращать данный статический документ при переходе на url «/home». Создать класс Phone с полями name, creationYear. Создать класс Manufacture с полями name, address. Создать классы-контроллеры для создания, удаления объектов и получения всех объектов каждого типа. Сами объекты хранить в памяти.

Практическая работа №15

Тема:

Использование Hibernate в Spring framework.

Постановка задачи:

Изменить программу с предыдущего задания так, чтобы объекты хранились в базе данных PostgreSQL вместо памяти компьютера.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published