- веб приложение (Tomcat, JSP, jQuery)
- многопоточный почтовый сервиса (JavaMail, java.util.concurrent.*) и вспомогательные модули
- связь модулей через веб-сервисы (SOAP, JAX-WS) и по REST (JAX-RS)
- сохранение данных в RMDBS (H2) и динамическое конфигурирование модулей по JMX.
Опыт программирования на Java. Базовые знания Maven.
Выбирать Ultimate, 30 days trial (работа с JavaScript, Tomcat, JSP). Учебный ключ к Ultimate выдается на первом занятии.
- JVM изнутри - оптимизация и профилирование.
- Stack and Heap
- Дополнительно:
- Реализация Singleton в JAVA
- Double checked locking
- Initialization-on-demand holder idiom
- Подводные камни Singleton
- Параллелизм в Java
- Монитор (синхронизация)
- Compare-and-swap
- Java Memory Model
- Синхронизация потоков
- Обзор java.util.concurrent.*
- Как работает ConcurrentHashMap
- Справочник по синхронизаторам java.util.concurrent.*
- Использование ThreadLocal переменных
- Николай Алименков — Прикладная многопоточность
- Can thread switching happen in the synchronized block?
- 1. Параллельное выполнение кода с помощью потоков
- 2. Синхронизация доступа к изменяемым объектам
- 3. Атомарные переменные и конкурентные таблицы
- Intuit, Потоки выполнения. Синхронизация
- Алексей Владыкин, Основы многопоточность в Java
- Виталий Чибриков, Java. Многопоточность
- Computer Science Center, курс Параллельное программирование
- Юрий Ткач, курс Advanced Java - Concurrency
- Головач, курс Java Multithreading
Вычекать этот проект:
git clone https://github.com/JavaOPs/masterjava.git
Реализовать метод MatrixUtil.concurrentMultiply
, позволяющий многопоточно перемножать квадратные матрицы N*N.
- Количество дочерних потоков ограничено
MainMatrix.THREAD_NUMBER
. - Учесть что-нибудь из оптимизации
возможны изменения, окончательная программа будет перед стартом курса
- Thread safety. Java Memory Model/ JSR 133. Happens-before.
- Публикация объектов. Использование ThreadLocal переменных
- Initialization on demand holder / Double-checked locking
- Обзор java.util.concurrent.*
- формат XML. XSD, XPath, XSL(T)
- Java API for XML: DOM, SAX, StAX, XSLT
- JMS, альтернативы
- Варианты разворачивания сервисов. Работа с базой. Связывание сервисов.
- Build Lifecycle
- Dependency Mechanism
- Зависимости, профили, написание плагина
- The Reactor. Snapshots
- Сборка, запуск, локальный и удаленный debug проекта, способы деплоя в Tomcat
- tomcat7-maven-plugin
- Веб-сервисы. SOAP. Преимущества/недостатки веб-сервисов. Расширения.
- Реализация веб-сервисов в Java. JAX-RPC, JAX-WS. Стили WSDL
- Создание API и реализации веб-сервиса MailService.
- Деплой и тестирование через SoapUI.
- Работа с JAXB.
- Передача по SOAP Exception
- Включение wsdl в сервис для публикации.
- Генерация java кода по WSDL
- Публикация веб сервиса из main(). Дабавление wsdl
- Выделение из wsdl общей части
- Создание клиента почтового сервиса.
- Тестирование с помощью JUnit 4
- Интеграционное тестирование, maven-failsafe-plugin
- Logical/protocol handlers.
- Логирование SOAP на стороне клиента.
- Логирование и статистика трафика опубликованного веб-сервиса.
- wsimport binding.
- SoapHandler аутентификация. Добавляем файлы вложения. Mail-Service.
- Генерация обновленного WSDL через wsgen
- Веб-сервисы: JAX-WS attachment with MTOM
- Тестирование вложений через SoapUi.
- Стандарт MIME. Обрабатываем вложения на форме: commons-fileupload
- Загрузка файла вместе в полями формы.
- Вызов клиента с вложениями.
- NoSQL or RDBMS. Обзор NoSQL систем. CAP
- Обзор Java persistence solution: commons-dbutils, Spring JdbcTemplate, MyBatis, JOOQ, ORM (Hibernate, TopLink, ElipseLink, EBean used in Playframework). JPA. JPA Performance Benchmark
- Работа с базой: создание базы, настройка IDEA Database.
- Работа с DB через DataSource, настройка tomcat. HikariCP
- Настройка работы с DataSource из JUnit.
- JAX-RS. Интеграция с Jersey
- Поддержка Json. Jackson
- @OneWay vs Java Execution framework
- Добавление в клиенте асинхронных вызовов.
- Асинхронные сервлеты 3.x в Tomcat
- Maven Groovy cкрптинг. groovy-maven-plugin
- Настройка Tomcat на удаленное администрирование по JMX