Перейти к основному содержимому

Путеводитель по весне в Eclipse STS

· 7 мин. чтения

1. Обзор

В этой статье показаны некоторые полезные функции IDE Eclipse Spring Tool Suite (STS) , которые полезны при разработке приложений Spring .

Сначала мы покажем преимущества использования STS по сравнению с традиционным способом создания приложений с помощью Eclipse.

После этого мы сосредоточимся на том, как загрузить приложение, как его запустить и как добавить дополнительные зависимости. Наконец, мы заканчиваем добавлением аргументов приложения.

2. Основные характеристики СТС

STS — это среда разработки на основе Eclipse, настроенная для разработки приложений Spring.

Он предоставляет готовую к использованию среду для реализации, отладки, запуска и развертывания ваших приложений. Он также включает интеграцию с Pivotal tc Server, Pivotal Cloud Foundry, Git, Maven и AspectJ. STS создан как дополнение к последним выпускам Eclipse.

2.1. Конфигурация проекта

STS понимает почти все наиболее распространенные структуры проектов Java. Он анализирует файлы конфигурации, а затем отображает подробную информацию об определенных bean -компонентах , зависимостях, используемых пространствах имен и, кроме того, извлекает обзоры для определенных стереотипов.

./5afde841347d824b937ec06d7a532657.png

2.2. Обзор функций STS

Eclipse STS проверяет ваш проект и предоставляет быстрые исправления для ваших приложений. Например, при работе с Spring Data JPA среда IDE может использоваться для проверки имен методов запроса (подробнее об этом в разделе 6).

STS также обеспечивает графическое представление всех методов компонентов и их взаимосвязей. Возможно, вы захотите поближе познакомиться с графическими редакторами, которые поставляются с STS, изучив представления, доступные в меню window , show view и затем Spring соответственно.

STS также предлагает другие дополнительные полезные функции, которые не ограничиваются только приложениями Spring. Читателю рекомендуется ознакомиться с полным списком функций, которые можно найти здесь .

3. Создание приложения Spring

Давайте начнем с загрузки простого приложения. Без STS приложение Spring обычно создается с помощью веб-сайта Spring Initializer или интерфейса командной строки Spring Boot . Это можно упростить, нажав « Создать проект Spring Starter» на панели инструментов в STS.

На экране New Spring Starter Project либо используйте значения по умолчанию, либо внесите свои собственные корректировки, а затем перейдите к следующему экрану. Выберите Интернет и нажмите «Готово». Теперь ваш pom.xml должен выглядеть примерно так:

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.0</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

Ваша версия Spring Boot может отличаться, но последнюю версию всегда можно найти здесь .

4. Запуск приложения

Вышеупомянутое приложение можно запустить, щелкнув проект правой кнопкой мыши и выбрав run as Spring Boot App . Без STS вы, скорее всего, запустите приложение из командной строки с помощью следующей команды:

$ mvn spring-boot:run

По умолчанию приложения Spring запускаются с Tomcat, работающим на порту 8080. На этом этапе приложение запускается на порту 8080 и в основном ничего не делает, поскольку мы еще не реализовали какой-либо код. В разделе 8 показано, как изменить порт по умолчанию.

5. Ведение журнала и консоль ANSI

Когда вы запускаете проект из IDE с помощью команды run, вы заметите, что консоль выводит несколько симпатичных операторов журнала с цветовой кодировкой . Если вы хотите отключить его, перейдите к запуску конфигураций … и снимите флажок Включить вывод консоли ANSI на вкладке Spring Boot . В качестве альтернативы вы также можете отключить его, установив значение свойств в файле application.properties .

spring.output.ansi.enabled=NEVER

Дополнительную информацию о настройке журналов приложений можно найти здесь .

6. Проверка имени запроса JPA

Иногда реализация уровня доступа к данным может быть громоздкой задачей. Возможно, придется написать много стандартного кода для реализации простых запросов и выполнения разбиения на страницы. Spring Data JPA (JPA) призван значительно облегчить такую реализацию уровней доступа к данным. В этом разделе показаны некоторые преимущества использования JPA в сочетании с STS.

Для начала добавьте следующую зависимость для JPA в ранее сгенерированный файл pom.xml :

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>

Возможно, вы заметили, что версия не указана в приведенном выше объявлении. Это связано с тем, что зависимостями управляет spring-boot-starter-parent .

Чтобы заставить JPA работать, необходимо, чтобы вы правильно определили своих менеджеров сущностей и менеджеров транзакций. Однако Spring автоматически настраивает их для вас. Единственное, что осталось разработчику, — это создать настоящие классы сущностей. Эти сущности управляются диспетчером сущностей, который, в свою очередь, создается контейнером. Давайте, например, создадим класс сущности Foo следующим образом:

@Entity
public class Foo implements Serializable {
@Id
@GeneratedValue
private Integer id;
private String name;

// Standard getters and setters
}

Контейнер сканирует все классы, аннотированные @Entity, из корня пакета конфигурации. Затем мы создаем репозиторий JPA для объекта Foo :

public interface FooRepository extends JpaRepository<Foo, Integer> {
public Foo findByNames(String name);
}

К этому моменту вы, возможно, уже заметили, что IDE теперь помечает этот метод запроса как исключение:

Invalid derived query! No property names found for type Foo!

Это, конечно, связано с тем, что мы случайно написали «s» в имени метода репозитория JPA. Чтобы исправить это, удалите ложную букву «s» следующим образом:

public Foo findByName(String name);

Обратите внимание, что @EnableJpaRepositories не использовался в классе конфигурации. Это связано с тем, что автоконфигурация контейнера предварительно регистрирует его для проекта.

7. Поиск типа банки

«Поиск типа Jar» — это функция, представленная в STS 3.5.0 . Он предоставляет предложения с поддержкой содержимого в проектах для классов, которые (еще) не включены в путь к классам. STS может помочь вам добавить зависимости в ваш файл POM, если они еще не находятся в пути к классам.

Например, давайте добавим строку в класс сущности Foo . Чтобы этот пример работал правильно, сначала убедитесь, что оператор импорта для java.util.List уже присутствует. Теперь мы можем добавить Google Guava следующим образом:

private List<String> strings = Lists // ctrl + SPACE to get code completion

IDE предложит добавить несколько зависимостей в путь к классам. Добавьте зависимость от com.google.common.collect, нажмите клавишу возврата и добавьте зависимость от Guava . Баночка Guava теперь будет автоматически добавлена в ваш файл pom.xml следующим образом:

<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>31.0.1-jre</version>
</dependency>

Начиная с версии STS 3.8.0 , вы получаете диалоговое окно подтверждения, прежде чем STS внесет изменения в ваш pom.xml.

8. Добавление аргументов приложения

Одной из других мощных функций Spring является поддержка внешних конфигураций, которые могут быть переданы приложению несколькими способами, например, в виде аргументов командной строки, указанных в свойствах или файлах YAML, или в виде системных свойств. В этом разделе мы сосредоточимся на добавлении параметра конфигурации в качестве аргумента запуска приложения с помощью STS. Это показано на примере настройки Tomcat для запуска на другом порту.

Чтобы запустить приложение на порту Tomcat, отличном от порта по умолчанию, вы можете использовать приведенную ниже команду, где настраиваемый порт указан в качестве аргумента командной строки:

mvn spring-boot:run -Drun.arguments="--server.port=7070"

При использовании STS вы должны перейти в меню запуска . Выберите конфигурации запуска … в диалоговом окне «Конфигурации запуска», выберите Spring Boot App на левой панели и выберите demo — DemoApplication (это будет отличаться, если вы не выбрали проект по умолчанию). From (x)= тип вкладки Arguments в окне Program Arguments

--server.port=7070

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

.
.
2016-07-06 13:51:40.999 INFO 8724 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 7070 (http)
2016-07-06 13:51:41.006 INFO 8724 --- [ main] com.foreach.boot.DemoApplication : Started DemoApplication in 6.245 seconds (JVM running for 7.34)

9. Заключение

В этой статье мы показали основы разработки проекта Spring в STS. Некоторые из вещей, которые мы показали, — это выполнение приложений в STS, поддержка во время разработки Spring Data JPA и использование аргументов командной строки. Однако есть много других полезных функций, которые можно использовать во время разработки, поскольку STS предлагает богатый набор функций.

Полную реализацию этой статьи можно найти в проекте github — это проект на основе Eclipse, поэтому его легко импортировать и запускать как есть.