Онлайн проекта Masterjava.
Материалы занятия (скачать все патчи можно через Download папки patch)
- убрал второй параметр xmlName (всегда
payload.xml)- в
parseByJaxbсделал закрытиеInputStreamсразу после обработки- сделал методы статическими
- вместо вложенного стрима для групп юзера сделал пересечение коллекций
Collections.disjoint- результат JAXB также вывожу в HTML (в ДЗ только в Optional)
- в
j2htmlвместоsetAttributeсделалattr
- зарефакторил в
StaxStreamProcessordoUntil()иgetAttribute()- константы вставил в код
- вместо вложенного цикла для групп юзера сделал пересечение коллекций
Collections.disjointи для маскирования пустых группStrings.nullToEmpty
В
groups.xslдобавил явный namespace. Теперь при создании xPath IDEA делает автодополнения
4. Обзор Guava
- The Top 20 Most Popular Java Libraries
- Guava Wiki
- Release 21.0: Java 8!
- 118 слайдов от Егора Чернышева
- Функторы, аппликативные функторы и монады в картинках
- Монады в Java 8
- Three Monad laws.
- What's Wrong in Java 8 Monads
- Сервис-ориентированная архитектура как повышение абстракции производства ПО
- What is service-oriented architecture?
- Современное представление (SOA): Микросервисы
- Микросервисная архитектура в разрезе
- Микросервисы (Microservices)
- Доклад Кирилла Толкачёва и Александра Тарасова про микросервисы
- CQRS
- Интеграция через несколько ДБ.
- Microservices with Spring, Микросервисная архитектура, Spring Cloud и Docker
- Microservices demo
- Spring Cloud Netflix
- Netflix
- Service Discovery: Eureka
- Circuit Breaker: Hystrix
- Load Balancer: Ribbon
- Declarative REST Client: Feign
- External Configuration: Archaius
- Gateway, Router and Filter: Zuul
- Metrics: Spectator, Servo, and Atlas
- RxJava with Spring MVC
- Справичник
- microservice in spring.io
- Building microservices with Spring Boot – part 1
- Building microservices with Spring Boot – part 2
- Deploying Spring Boot-based microservices with Docker – part 3
- Developing Microservices With Spring Boot
- Webinar: Building "Bootiful" Microservices with Spring Boot
- Managing your Microservices on Heroku with Netflix's Eureka
- Платформы
- Snapshot. The Reactor.
- Maven module inheritance vs aggregation
- Расширение кругозора:
- Сделать структуру проекта согласно схеме. В модулях c
packaging=pomкода нет, корневоеsrcперенести в другие модули.Matrix + Benchmarkперенести в модульtest.- Схемы XML/XSD в модуль
upload
Внимание: название модуля export в видео и картинке идеологически неверно. В коде и патчах переименовал в upload.
WAR модули:
mail-service- модуль отсылки почты. Транспорт: JAX-WS, JAX-RS, JMX, AKKAupload- модуль загрузки payload.xml. Заргузка и многопоточночная вставка в DBwebapp- веб-интерфейс для отсылки почты пользователям из DB. Клиент модуляmail-service
- Учитывая, что web модулей в проекте предполагается много, измените структуру, чтобы не дублировать
maven-war-plugin(и другие общие зависимости war модулей). - Проверьте, что проект собирается!
- Реализовать простую форму заргузки файла
payload.xmlв модулеupload(через StAX) и отобразить загруженных пользователей (имя/email/flag)- для отображения взять любой шаблон (JSP, Thymeleaf, ...)
- загрузку сделать через любую реализацию (Servlet 3.х предпочтительнее):
- Сделать загрузку через StAX+JAXB многопоточно. Сейчас
JaxbParserреализован сsynchronize, что означает что он потокобезопасен (может работать с несколькими запросами), но последовательно, в одном потоке. Нужен рефакторинг.
- 1: имя артифакта
artifactIdкак и пакеты называть только в lowercase. Обычно используют "-" как разделитель слов. Имя каталога модуля лучше делать тоже самое: Project Directories Should Match the Artifact ID - 2: следите, чтобы пути в шаблонах были не от рута "/". Каждое приложение деплоится в свой Application Context.
- 3: чтобы не дублировать
maven-war-pluginсделатьparen-web. Он наследуется отparent, а от него наследуются все war модули.

