Similar presentations:
Java Best Practice. Лучшие практики разработки на Java
1. Java Best Practice
Лучшие практики разработки на Java2. Обзор курса
Инструменты автоматизированной сборкипроектов (Ant, Maven)
Обзор технологии Unit-тестирования
(Junit)
Технологии логирования (Log4J, Slf4J,
LogBack)
Создание «заглушек» (Mockito)
Введение в Spring
MVC Паттерн (Spring MVC)
billing.ru
2
3. Обзор курса. Продолжение
Обзор тeхнологии ORMСоздание DAO-объекта (JDBC, MyBatis)
Механизмы безопасности (Spring Security)
Создание веб-сервисов SOAP и REST
(Apache CXF)
Мониторонг (JMX)
billing.ru
3
4.
45. Apache Ant
Apache Ant (англ. ant — муравейи акроним — «Another Neat Tool») –
утилита для автоматической сборки
проекта
Императивная сборка проекта
Платформонезависимость (Использует
JRE)
Управление процессом сборки на основе
сценария, записанного в файле build.xml
billing.ru
5
6.
67.
8. Apache Maven
Инструмент для автоматизации сборкипроектов: компиляции, создания jar,
создания дистрибутива программы,
генерации документации
Обеспечивает декларативную сборку.
Информация о проекте описывается на
языке POM(Project Object Model) и
содержится в файле pom.xml
Maven придерживается принципа
«соглашения прежде конфигурации»
billing.ru
8
9. Ключевые преимущества
Автоматическое управлениезависимостями
Огромный, поддерживаемый в
актуальном состоянии репозиторий
артефактов
Maven – наиболее широко
распространенный инструмент для сборки
Поддержка большинством современных
IDE (Eclipse, IntelliJ IDEA …)
billing.ru
9
10. Установка
Требуется наличие на машине JDKверсии >= 1.5
Дистрибутив можно скачать с сайта
http://maven.apache.org
Прописать переменную окружения
M2_HOME
Добавить путь %M2_HOME%/bin в PATH
Для запуска используется команда mvn
billing.ru
10
11. Проверка установки
billing.ru11
12. Создание тестового проекта
mvn archetype:generateChoose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 254:
Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
1: 1.0-alpha-1
2: 1.0-alpha-2
3: 1.0-alpha-3
4: 1.0-alpha-4
5: 1.0
6: 1.1
Choose a number: 6:
Define value for property 'groupId': : com.peterservice
Define value for property 'artifactId': : mavenTest2
Define value for property 'version': 1.0-SNAPSHOT: :
Define value for property 'package': com.peterservice: :
Confirm properties configuration:
groupId: com.peterservice
artifactId: mavenTest2
version: 1.0-SNAPSHOT
package: com.peterservice
Y: : Y
billing.ru
12
13. Схема
billing.ru13
14. Артефакт
Что такое Артефакт? Да все что угодно,например (jar,war, и.т.п.)
Результатом работы Maven является
создание (построение) артефакта, а так
же ряд дополнительных действий над ним
(тестирование, инсталляция в локальный
репозиторий, deployment)
Сам артефакт зависит от других
артефактов (нашихи внешних, плагинов
maven)
billing.ru
14
15. Координаты артефакта
groupIdartifactId
[packaging] default jar
Version в формате mmm.nnn.bbb-ssssss-dd
, необязательными являются поля ssssss
(спецификатор SNAPSHOT,RELEASE и т.п.)
и dd (номер сборки)
[classifier]
groupId:artifactId[:packaging]:version[:classifier]
billing.ru
15
16. Примеры maven координат
log4j<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
spring
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.1.0.RELEASE</version>
billing.ru
16
17. POM файл
POM - Project Object Model, xml файл,обычно называется pom.xml
POM файл содержит описание нашего
проекта (декларативный стиль!) и все
специфические его настройки.
billing.ru
17
18. Декларативный стиль в POM
Основная концепция maven в том, что мы используемлучшие практики разработки (best practices) с
зафиксированными правилами и настройками по
умолчанию. Maven использует наследование,
агрегирование и управление зависимостями при
описании проекта в POM файле.
Пример стандартного размещения файлов java проекта:
billing.ru
Build директория по умолчанию - target
18
19. Репозитории
Репозиторий maven это файловоехранилище с метаинформацией и
быстрым поиском и доступом
local ( находятся в ~/.m2/repository )
remote (например, стандартный
http://repo1.maven.org/maven2 или
внутренний репозиторий компании,
например, Nexus)
используются для хранения и получения
зависимостей (dependencies) проекта и
плагинов maven
billing.ru
19
20. Жизненный цикл
billing.ru20
21. Выполнение фаз жизненного цикла
mvn [ имя фазы ]При выполнении определенной фазы
автоматически выполняются все
предыдущие фазы
mvn test (выполняется в папке, где
находится pom.xml)
validate -> compile -> test
сообщения об ошибках в папке
target\surefire-reports\
billing.ru
21
22. Junit dependency
billing.ru22
23.
billing.ru23
24.
Обзор технологии Unit-тестирования24
25. Что такое Unit-тесты
Unit-тест – код, написанныйразработчиком, который проверяет
небольшой кусок функциональности
тестируемого кода.
billing.ru
25
26.
2627.
Paying-as-you-go vs. Having a Single Testing Phasebilling.ru
27
28. Библиотека Junit (Версия 4)
Тестовый класс может иметь любоеназвание. Частая практика заканчивать
имя класса на Test (CalculatorTest)
В Junit 4 не нужно наследовать от
TestCase
Тестовый метод должен быть помечен
аннотацией @Test и может иметь
произвольное имя
Хорошей практикой считается называть
методы, начиная с test (testAdd)
billing.ru
28
29.
2930. Аннотации JUnit
@BeforeClass/@AfterClass (метод должен бытьpublic и static): Метод помеченный такой аннотацией
выполняется один раз перед выполнением всех
тестовых методов
@Before/@After (метод должен быть public):
Метод помеченный такой аннотацией выполняется
до/после каждого тестового метода
@Test (expected = RuntimeException.class):
Аннотация говорит о том, что в тесте ожидается
exception типа Runtime, если в тесте exception не будет
выброшен, то тест будет провален
@Test (timeout = 100): Тест будет провален, если он
будет выполняться боллее 100 миллисекунд
@Ignore (value = "Ignore"): пропустить тест (не
выполнять
его)
billing.ru
30
31.
billing.ru31
32.
3233. Подключение библиотеки логирования
billing.ru33
34. Уровни логирования
The six logging levels used by Log are (inorder):
1. trace (the least serious)
2. debug
3. info
4. warn
5. error
6. fatal (the most serious)
billing.ru
35.
3536. Настройки
Конфигурация logback находится вфайлах:
logback-test.xml
logback.xml
Если найти данные файлы не удается, то
используется настройка по-умолчанию
(вывод информации в консоль)
billing.ru
36
37. Использование логирования
billing.ru37
38. Пример конфигурации
billing.ru39.
billing.ru39
40.
4041.
4142.
4243. Принципы Spring Framework
Dependency InjectionAspect-Oriented programming
billing.ru