Базовый Spring-проект на gradle, работающий со встроенным томкатом.
основная статья https://spring.io/guides/gs/spring-boot/
Создаём в эклипсе новый проект, в мастере выбираем gradle-project. Обновляем build.gradle:
plugins {
id 'org.springframework.boot' version '2.2.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}
group = 'ru.ayakovlev'
version = '0.2.0'
sourceCompatibility = '1.8'
dependencies {
// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'junit:junit:4.12'
}
repositories {
mavenCentral()
}
jar {
manifest {
attributes('Implementation-Title': project.name,
'Implementation-Version': project.version)
}
}
id 'org.springframework.boot' version '2.2.4.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
id 'java'
}
group = 'ru.ayakovlev'
version = '0.2.0'
sourceCompatibility = '1.8'
dependencies {
// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'org.springframework.boot:spring-boot-starter-web'
testImplementation 'junit:junit:4.12'
}
repositories {
mavenCentral()
}
jar {
manifest {
attributes('Implementation-Title': project.name,
'Implementation-Version': project.version)
}
}
В файле gradle-wrapper.properties прописываем версию градла 4.10.2 :
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Создаём маленький контроллер, который будет возвращать не html, а данные:
package ru.ayakovlev.electionAnalysis2.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/")
public String index() {
return "Greetings from Spring Boot !";
}
}
Создаём класс приложения:
package ru.ayakovlev.electionAnalysis2;
import java.util.Arrays;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commanLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot: ");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
package ru.ayakovlev.electionAnalysis2;
import java.util.Arrays;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commanLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot: ");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
Запуск приложения из командной строки линукса:
./gradlew bootRun
В git bash остановить это приложение, к сожалению, невозможно. Поэтому лучше его запускать из Far-а командой:
gradlew bootRun
Чтобы освободит порт 8080, который не освобождается после запуска в баше,
В командной строке Windows выполняем команду, которая сообщит нам номер процесса, блокирующего наш порт:
netstat -ano | findstr 8080
Мы получим примерно такой вывод:
C:\WINDOWS\system32>netstat -ano | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 13496
TCP [::]:8080 [::]:0 LISTENING 13496
Самый правый столбец скажет нам номер процесса.
Его мы завершаем с помощью команды:
taskkill /F /pid <process_number>
taskkill /F /pid <process_number>
После запуска приложения в окне должен высыпаться длинный список загруженных бинов.
Если обратиться к серверу по адресу в командной строке или в браузере, то мы увидим приветствие, забитое в коде:
$ curl localhost:8080
Greetings from Spring Boot!
Комментариев нет:
Отправить комментарий