Статьи
YouTube-канал
Отзывы

Статьи с тэгом «maven»

Создание runnable jar файла с помощью maven

2 мая 2018

Тэги: Java, maven, Apache.

Понятие runnable jar или uber jar возникает тогда, когда вы задумываетесь о разворачивании вашего проекта на удалённом сервере. У вас должна быть уверенность в том, что в произвольном окружении, где окажется ваше приложение, в classpath будут все необходимые классы из используемых вами библиотек.

Конечно, никакой проблемы нет, если вы вообще не используете сторонние библиотеки. Но я уверен, что всё-таки используете, если только ваш проект не «Hello World».

Чтобы гарантировать наличие нужных версий всех библиотек, нам проще поставлять их вместе с нашим приложением. Для удобства развёртывания все библиотеки можно поместить в один jar-файл. Подробнее о том, что такое jar-архив и как его получить, мы рассматривали в статье Как скомпилировать исходники java вручную.

Рассмотрим конкретный пример. Пусть имеется приложение, которое использует класс StringUtils из популярного проекта Apache Commons Lang:

package ru.devmark;

import org.apache.commons.lang3.StringUtils;

public class Main {

    public static void main(String[] args) {
        System.out.println(StringUtils.isBlank(""));
    }
}

В pom-файле нашего maven-проекта должно быть прописано следующее:

Читать полностью...

Пример standalone-приложения на Spring

14 января 2018

Тэги: Java, maven, Spring, ООП, Java 8, Stream API.

Рассмотрим базовые возможности dependency injection (внедрения зависимостей), которые открывает нам Spring.

Создадим обычный maven-проект, где в pom.xml добавим сам Spring (артефакт spring-context) и секцию build со стандартным плагином maven-compiler-plugin, в котором указываем версию java в source и target.

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.3.13.RELEASE</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>

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

Читать полностью...

Выравнивание числа ведущими нулями

12 января 2018

Тэги: Java, maven, Apache.

Рассмотрим случай, когда у вас есть некое число, количество цифр в котором заранее неизвестно и вам необходимо, чтобы число всегда составляло 5 знаков, то есть нужно добавить необходимое количество нулей слева. Есть целых два способа сделать это.

Без использования сторонних библиотек

Если у вас небольшой проект и не хочется тянуть лишнюю зависимость, то используйте String.format():

System.out.println(String.format("%05d", 42));

В результате мы увидим строку «00042». К недостаткам данного способа можно отнести то, что нужно помнить правила форматирования в методе String.format().

Читать полностью...

Spring Boot Restful Service

4 января 2018

Тэги: maven, rest, Spring Boot, Java, Spring.

Что мы получим в результате

Простой сервис на Spring Boot, который при выполнении get-запроса будет возвращать профиль пользователя в формате json в зависимости от id, который передаётся в запросе. При возникновении исключительных ситуаций (например, профиль не найден), пользователь получит соответствующий ответ.

Реализуем обработку get-запроса

Сразу оговорюсь, что здесь рассмотрю только создание самого веб-сервиса. Чаще всего, он будет обращаться к базе для получения профиля пользователя. Мы же этого здесь делать не будем, а только сымитируем загрузку профиля по id. Но всё, что касается взаимодействия по http, будет работать как положено.

Spring Boot позволяет просто и без лишних телодвижений создавать веб-сервисы. При этом конфигурацию служебных бинов он берёт на себя. Вы всегда можете переопределить дефолтное поведение, объявив тот или иной бин явно.

Давайте создадим maven-проект, в котором в качестве родительского проекта укажем spring-boot-starter-parent. Также нам потребуется добавить одну зависимость spring-boot-starter-web. Этого вполне достаточно для нашего проекта.

Читать полностью...

Генерация строки на основе шаблона

4 января 2018

Тэги: maven, Apache, Java.

Предположим, вам нужно генерить текст по определённому шаблону. У вас есть заранее заготовленный текст, куда вы передаёте параметры для подстановки. Например, текст sms для клиента.

Самое первое, что приходит на ум - это воспользоваться методом String.format(). Как известно, он чувствителен к порядку следования элементов. Но что, если сам шаблон лежит у вас где-нибудь в базе данных и может измениться в любое время, а порядок параметров «зашит» в коде самого приложения? Согласитесь, было бы удобнее, чтобы каждый параметр подставлялся по имени, а не по порядку.

И тут первое, что приходит на ум - это метод String.replace(). Но чтобы не писать очередной велосипед, лучше воспользоваться классом org.apache.commons.lang3.text.StrSubstitutor из популярной библиотеки Apache Commons Text.

Читать полностью...

❮ Назад