Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

egarminkn/javaops-masterjava-01

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Многомодульный maven. Многопоточность. XML. Веб сервисы. Удаленное взаимодействие

Разработка полнофункционального многомодульного Maven проекта

  • веб приложение (Tomcat, Thymleaf, jQuery)
  • модуль экспорта из XML (JAXB, StAX)
  • многопоточный почтовый сервис (JavaMail, java.util.concurrent.*)
  • связь модулей через веб-сервисы (SOAP, JAX-WS) и по REST (JAX-RS)
  • сохранение данных в RMDBS (postgresql)
  • библиотеки Guava, StreamEx, Lombook, Typesafe config, jDBI

Требование к участникам

Опыт программирования на Java. Базовые знания Maven.

Необходимое ПО

Выбирать Ultimate, 30 days trial (работа с JavaScript, Tomcat, JSP). Персональный ключ к Ultimate (на 6 месяцев) выдается на первом занятии.

Первое занятие: многопоточность.

Concurrent vs Parallel

В видео в LazySingleton ошибка: должно быть как в коде проекта instance == null

Структура памяти: куча, стек, permanent/metaspace

Ленивая инициализация

Tproger: Многопоточное программирование в Java 8

правка к видео: 22: completionService.submit(..)

Все изменения в проекте будут делаться на основе патчей: скачайте 1_1_MailService.patch, положите его в проект, правой мышкой на нем сделайте Apply Patch ...


Ресурсы (основы)


hw Задание первого занятия

Вычекать этот проект: git clone https://github.com/JavaOPs/masterjava.git

  • Применить оптимизацию к MatrixUtil.singleThreadMultiply
  • Реализовать метод MatrixUtil.concurrentMultiply, позволяющий многопоточно перемножать квадратные матрицы N*N.
  • Количество дочерних потоков ограничено MainMatrix.THREAD_NUMBER.
  • Добиться того, чтобы на матрице 1000*1000 многопоточная реализация была быстрее однопоточной

Программа проекта

Занятие 2

  • Разбор ДЗ (многопоточная реализация умножения матриц)
  • Java Microbenchmark JMH (от Алексея Шипилева)
  • Обзор Guava
  • Формат XML. Создание схемы XSD.
  • Работа с XML в Java
    • JAXB, JAXP
    • StAX
    • XPath
    • XSLT

Занятие 3

  • Разбор ДЗ (работа с XML)
  • Обзор StreamEx (от Тагира Валеева)
  • Монады. flatMap
  • SOA и Микросервисы
  • Многомодульный Maven проект

Занятие 4

  • Разбор ДЗ (реализация структуры проекта, загрузка и разбор xml)
  • Thymleaf
  • Maven. Поиск и разрешение конфликтов зависимостей
  • Логирование
  • Выбор lightweight JDBC helper library. JDBI
  • Tomcat Class Loader. Memory Leaks

Занятие 5

  • Разбор ДЗ (реализуем модули persist, export и web)
  • Конфигурирование приложения (Typesafe config)
  • Lombook

Занятие 6

  • Разбор ДЗ (доработка модели и модуля export)
  • Миграция DB
  • Веб-сервисы (REST/SOAP)
    • Java реализации SOAP
    • Имплементируем Mail Service

Занятие 7

  • Разбор ДЗ (реализация MailSender, сохранение результатов отправки)
  • Стили WSDL. Кастомизация WSDL
  • Публикация кастомизированного WSDL. Автогенерация.
  • Деплой в Tomcat
  • Создание клиента почтового сервиса

Занятие 8

  • Разбор ДЗ (отправка почты через Executor из модуля web)
  • Доступ к переменным maven в приложении
  • SOAP Exception. Выделение общей части схемы
  • Передача двоичных данных в веб-сервисах. MTOM

Занятие 9

  • Разбор ДЗ (реализация загрузки и отправки вложений по почте)
  • JAX-WS Message Context
  • JAX-WS Handlers (логирование SOAP)

Занятие 10

  • Разбор ДЗ (реализация авторизации и статистики)
  • JavaEE
    • CDI
    • JAX-RS. Интеграция с Jersey
    • EJB
    • JMS

Занятие 11 (предварительно)

  • Асинхронные сервлеты 3.x в Tomcat
  • Maven Groovy cкрптинг (groovy-maven-plugin)
  • AKKA
  • Redis

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.