Багато розробників на Spring Boot хочуть, щоб їх програми використовували автоконфігурацію, сканування компонентів і
могли визначати додаткову конфігурацію у своєму "класі програми". Для активації цих трьох функцій можна
використовувати єдину анотацію @SpringBootApplication
:
-
@EnableAutoConfiguration
: активує механізм автоконфігурації Spring Boot -
@ComponentScan
: активує сканування анотації@Component
для пакета, в якому знаходиться програма -
@SpringBootConfiguration
: дозволяє реєструвати додаткові біни в контексті або імпортувати додаткові класи конфігурації. Альтернатива стандартної анотації@Configuration
зі Spring, яка допомагає виявляти конфігурації у твоїх інтеграційних тестах.
// Те саме, що і @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
// Те саме, що і @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan
@SpringBootApplication
class MyApplication
fun main(args: Array<String>) {
runApplication<MyApplication>(*args)
}
@SpringBootApplication
також передбачає псевдоніми для
налаштування атрибутів анотацій @EnableAutoConfiguration
та @ComponentScan
.
Жодна з цих функцій не є обов'язковою, і ти можеш замінювати цю єдину анотацію будь-якою з функцій, які вона активує. Наприклад, можна не використовувати сканування компонентів або сканування конфігураційних властивостей у своїй програмі:
@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import({ SomeConfiguration.class, AnotherConfiguration.class })
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
@SpringBootConfiguration(proxyBeanMethods = false)
@EnableAutoConfiguration
@Import(SomeConfiguration::class, AnotherConfiguration::class)
class MyApplication
fun main(args: Array<String>) {
runApplication<MyApplication>(*args)
}
У цьому прикладі MyApplication
є таким же, як і будь-яка інша програма Spring Boot, за винятком
того, що класи, анотовані @Component
та @ConfigurationProperties
, не виявляються
автоматично, а біни користувача імпортуються явно (див. анотацію @Import
).
Виконання програми
Однією з найбільших переваг упаковки програми у вигляді jar-файлу та використання вбудованого HTTP-сервера є те, що ти можеш запускати свою програму так само, як і будь-яку іншу. Цей зразок застосовується для налагодження програм Spring Boot. Тобі не потрібні спеціальні плагіни або розширення для IDE.
Виконання з IDE
Можна запустити програму Spring Boot з твоєї IDE як Java-додаток. Однак спочатку необхідно імпортувати проєкт. Етапи
імпорту залежать від твоєї IDE та системи збирання. Більшість IDE здатні імпортувати Maven-проекти безпосередньо.
Наприклад, користувачі Eclipse можуть вибрати Import…
→ Existing Maven Projects
з меню
File
.
Якщо не можна безпосередньо імпортувати свій проєкт у IDE, можна згенерувати метадані IDE за допомогою плагіна складання. Maven включає плагіни для Eclipse та IDEA. Gradle передбачає плагіни для різних IDE.
Relaunch
, а не кнопку Run
, щоб переконатися, що будь-який екземпляр закритий.
Виконання у вигляді упакованої програми
Якщо ти використовуєш плагіни Spring Boot для Maven або Gradle, щоб створити виконуваний jar-файл, то можеш запустити
свою програму за допомогою команди java -jar
, як показано в наступному прикладі:
$ java -jar target/myapplication-0.0.1-SNAPSHOT.jar
Також можна запустити упаковану програму з активованою підтримкою віддаленого налагодження. Це дозволяє підключати налагоджувач до упакованої програми, як показано в наступному прикладі:
$ java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n \
-jar target/myapplication-0.0.1-SNAPSHOT.jar
Використання плагіна для Maven
Плагін Spring Boot для Maven містить мету run
, яку можна використовувати для швидкої компіляції та
виконання програми. Програми виконуються у розібраному вигляді, як і в твоєму IDE. У наступному прикладі показано
типову команду Maven для виконання програми Spring Boot:
$mvn spring-boot:run
Ти також можеш використовувати змінну оточення операційної системи MAVEN_OPTS
, як показано в наступному
прикладі:
$ export MAVEN_OPTS=-Xmx1024m
Використання плагіна для Gradle
Плагін Spring Boot Gradle також містить завдання bootRun
, яке можна використовувати для запуску програми
у розібраному вигляді. Завдання bootRun
додається кожного разу, коли ти використовуєш плагіни org.springframework.boot
та java
, як показано в наступному прикладі:
$ gradle bootRun
Ти також можеш використовувати змінну оточення операційної системи JAVA_OPTS
, як показано в наступному
прикладі:
$ export JAVA_OPTS=-Xmx1024m
Гаряча заміна
Оскільки програми Spring Boot є звичайними Java-додатками, гаряча заміна JVM повинна працювати "з коробки". Гаряча заміна JVM дещо обмежена щодо байт-коду, який вона може замінити. Як повніше рішення можна використовувати JRebel.
Модуль spring-boot-devtools
також містить засоби підтримки швидкого перезапуску додатків.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ