Showing posts with label spring framework. Show all posts
Showing posts with label spring framework. Show all posts

Friday, October 28, 2016

Курс Spring Framework - The Basics

Когда-то давно я создал и вёл курс по основам Spring Framework. Это было где-то одновренно с курсами по Advanced Java. Однако запись курса была в плохом качестве, и поэтому я его не выложил. Чуть позже с помощью компании, где я работаю, мы создали MOOC курс, записав его в студии. Также, я его нормально структурировал, добавил домашнее задания, проверочные тесты и т.п. В общем, всё, чтобы плодотворно учиться. К сожалению, по определенным причинам я не смог его тогда дооформить для youtube и выложить. И вот наконец, этот день настал :)

Данный курс знакомит с базовыми концепциями Spring Framework и его основными модулями: Core, AOP, JDBC. С помощью практических примеров объясняется внедрение зависимостей (dependency injection), определение объектов (beans), их связывание. Курс учит различным способам конфигурации Spring, а также показывает базовые приемы использования базы данных и аспектов (aspects), языка выражений (expression language) и аннотаций.

Курс состоит из 13 видео-уроков (хо-хо, 13!), темы которых такие:

  1. Spring Architecture
  2. Dependency Injection
  3. Bean Naming and Context Start-up
  4. Scopes and Inner Beans
  5. Initialize and Destroy
  6. Context Features
  7. Property Injection
  8. More Context Features
  9. Configuration with Annotations
  10. Expression Language
  11. Aspect-Oriented Programming
  12. Simple Aspects
  13. Simple DB Access

Повествование идет на русском языке, слайды на английском - в конце-концов без него никуда. В этот раз я также добавил субтитры в видео на двух языках. После каждого видео-урока я предлагаю пройти небольшой тест (5-6 вопросов), чтобы просто проверить, как Вы усвоили материал. Вопросы теста на английском :) Ссылка на тест есть в описании к каждому видео.

Как и с курсами Advanced Java, видео-уроки расчитаны на практику. Т.е. предлагается параллельно слушать и писать код. Также, в конце курса будет домашнее задание, где надо будет написать небольшое приложение, приближенное к реальному. На самом деле, домашних задания будет три: по темам 1-10, 11-12, и 13.

Внимательный читатель тут может сказать: "Аха! А ведь уже были лекции по Spring Framework!" Да, лекции были. Но то были только лекции :) В этот раз, информации больше, плюс практика и еще раз практика. И сразу отвечу на вопрос, почему нет еще больше информации. А как же web, security, и другие фишки? Нет, по двум причинам. Во-первых, по другим темам курс я не создавал. Во-вторых, для новичка сложнее всего понять базу. Если он её осилит, то дальше и самостоятельно сможет. :)


Как Вы уже, наверное, знаете, Spring Framework - это один из самых популярных фреймворков для разработки приложений на языке программирования Java. Он обеспечивает всестороннюю поддержку инфраструктуры при создании приложений, и используется миллионами разработчиков по всему миру. Знание Spring является полезным для понимания концепции внедрения зависимостей и способов управления объектами в любом приложении.

Read More...

Thursday, November 19, 2009

Видео лекции по JavaServer Faces

JavaServer Faces — это технология создания веб-приложений, на основе визуальных компонент. Она является одним из стандартов среди технологий J2EE. Главной отличительной особенностью от других существующих технологий построения веб-приложений на языке Java является то, что в JSF все строится на так называемых визуальных компонентах, которые принимают вводимые данные от пользователя, передавая их в код приложения, а также выводят данные приложения в определенной форме. На самом деле JSF — это больше, чем набор компонент и API для управления ими.

Во-первых, JSF — это спецификация. На данный момент активно дорабатывается версия 2.0 и, если я правильно все понял, то уже в J2EE 6 она появится. До этой версии стандартной была версия 1.2, которую использовать было сложно без применения дополнительных библиотек, таких как Facelets, PrettyFaces, RichFaces или другие AJAX библиотеки. Популярной реализацией JSF спецификации является Project Mojarra. Также существует реализация от Apache, которая называется MyFaces.

Во-вторых, JSF — это полноценный фреймворк, на базе которого можно создавать веб-приложения. Кроме визуальных компонент, существует настраиваемая система навигации между страницами, контейнер бинов (managed beans с инжекцией зависимостей), обработка событий, поддержка EL-языка, управление состояниями компонент и приложения. И, наверное, не менее важное то, что JSF позволяет изменять и расширять свою функциональность, имея стандартизированный API.

JSF я начал изучать сам в далеком 2007 года. Я открыл обычный J2EE туториал и внимательно перечитал раздел, связанный с JSF. Я считаю, что невозможно выучить какую-либо технологию, не создав чего-либо с ее помощью. Поэтому, я создал небольшое серверное приложение GTalkWap, которое позволяло заходить на веб-странички с помощью мобильного телефона с поддержкой WAP и общаться в сети GoogleTalk. У меня тогда был очень слабенький мобильный телефон, Java-приложения на нем не запускались, и поэтому общение таким образом меня очень даже радовало. Запустив это приложение на университетском сервере, я им активно пользовался.

Позже я узнал про существование замечательной технологии Facelets, которая позволила избавиться от использования JSP страниц, а отображение определять в XHTML. Также она позволила использовать шаблоны страниц, которые мне понравились больше, чем те, что были тогда в библиотеке Tiles от Apache. С самого начала изучения JSF я знал про существование различных библиотек визуальных компонент. Но как только я начал использовать RichFaces от JBoss, JSF завоевал мое сердце.

Рассказывая студентам на лекциях о JSF, я старался покрыть как можно больше материала, не вдаваясь в сложные технические подробности. Сравнивать им было не с чем, так как до этого они знали только JSP, поэтому JSF для них был новой технологией. И чтобы не отбить интерес, я заострял внимание на основных фишках, которые упрощали создание веб-приложений, оставляя детали на самостоятельное изучение. Также отдельно я останавливался на интеграции Spring и JSF, так как весь проект был построен на основе Spring. Специально для студентов я создал приложение-пример ExampleTPPS, в котором отразил использование таких технологий, как Spring, JPA, Hibernate, AspectJ, JSF, Facelets, RichFaces, Log4J, Ant, JUnit.

Кстати, на счет самостоятельного изучения JSF, то могу порекомендовать вот этот небольшой туториал на русском языке от IBM, а также книгу Facelets Essentials: Guide to JavaServer Faces View Definition Framework (попробовать скачать можно тут), ну и, конечно, собственные лекции, которые идут ниже. :)















Update: Ниже выкладываю ссылки на слайды лекций, чтобы Вы их смогли скачать и использовать в своей практике.
Лекция 14, Лекция 15, Лекция 16, Лекция 17, Лекция 18, Лекция 19, Лекция 20

Read More...

Wednesday, November 11, 2009

Видео лекция по Spring Framework

Spring Framework - популярная библиотека среди многих Java разработчиков, которая является легковесным контейнером и содержит богатый набор вспомагательных классов для поддержки инфраструктуры как веб-приложений, так и настольных. Spring позволяет применять паттерн "внедрения зависимостей" (dependency injection) для организации взаимодействия компонент системы, выступая для них контейнером. Вместе с богатым набором классов для упрощения доступа к данным, организации веб представления, защиты приложения и взаимодействия со многими популярными библиотеками Spring может быть хорошей альтернативой использованию EJB, особенно там, где не требуется наличие EJB-контейнера и всей его инфрастуктуры.

Для подробной информации об использовании Spring могу порекомендовать книгу Spring in Action, Second Edition от Manning (если хотите скачать, посмотрите тут, ну или поищите в гугле, найти книгу не сложно).

Так вот, читая эту книгу, мне очень понравилось изложение материала. Сначала рассказывается о "внедрении контроля" (другие варианты названия - инжекция зависимостей, инверсия контроля). Причем, все объясняется на простеньком примере. Потом рассматривается уже разработка сложного веб приложения и объясняются все другие возможности Spring-а.

Рассказ о "внедрении контроля" (мне, все же, больше нравится вариант "инжекция зависимостей", так как это дословный перевод с английского) особенно понравился. Там рассказывается о разработке и тестировании приложения, которое обеспечивает походы Короля Артура для поиска Священного Грааля.

Рассказывая лекцию по Spring, я знал, что всю информацию уложить в 80 минут у меня не получится. Поэтому я постарался остановиться на самом важном аспекте - инжекция зависимостей. А вместо походов Короля Артура я выбрал то, что ближе для Украины - походы казацкого гетмана. Вместе с этой информацией, я также кратко объясняю и другие аспекты Spring, а, например, про взаимодействие его с JPA я рассказываю в отдельных лекциях, посвященных огранизации доступа к базе данных.


Update: Ниже выкладываю слайды лекции, чтобы Вы их смогли скачать и использовать в своей практике. Для этого нажмите меню в правом нижнем углу, потом нажмите на название презентации слева почти снизу. В новом окне откроется презентация, где ее можно будет скачать.



Кстати, в блоге гугла, посвященному тестированию, есть статья, где написаны их советы по написанию хорошо тестируемого кода. Более подробно все эти рекомендации представлены в этом PDF-файле. Много в чем они сводятся к тому, что необходимо использовать внедрение контроля, чтобы свести зависимости между классами к минимуму. Так что, "внедрение контроля" (или инжекция зависимостей) - это очень и очень полезная штука. :)

Read More...

Видео лекции по Java Persistence API (JPA)

Работая преподавателем в Черниговском государственном технологическом университете на кафедре Информационных и компьютерных систем, я читал курс лекций по предмету ТППС (Технологии проектирования программных систем). В основном я старался делать упор на проектирование систем, рассказывая про разные шаблоны, подходы, многослойную архитектуру и т.п. Материал свой я основывал на замечательной книге Мартина Фаулера "Архитектура корпоративных программных приложений".

Однако, без рассказа о технологиях, которые применяются для создания систем уровня предприятия, этот курс был бы не таким интересным. Весь курс основывался на технологиях J2EE и связанными с ними, и поэтому включал в себя такие темы как Spring, AOP, JPA, Hibernate, JSF.

В последний год своего преподавания я случайно додумался записывать лекции на видео, используя способ, описанный в предыдущем посте.

В этом посте я решил выложить лекции, где я рассказываю про технологию JPA и использование Hibernate, в качестве ее реализации. Попутно, вместе с JPA, я рассказываю про разные шаблоны реализации слоя доступа к данным, шаблоны отображеня наследования объектов на реляционные таблицы базы данных, и есть интересные лекции про транзакции, DAO и использование Spring+JPA.

Все лекции, собранные в одном месте, чтобы легче было их искать и следовать по ним :)













Update: Ниже выкладываю ссылки на слайды лекций, чтобы Вы их смогли скачать и использовать в своей практике.
Лекция 8, Лекция 9, Лекция 10, Лекция 11, Лекция 12, Лекция 13

Read More...