Багато розробників на 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 також містить засоби підтримки швидкого перезапуску додатків.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ