Создайте проект SpringBoot
пройти черезSpring InitializrСоздать проекты
- первый шаг
- Затем нажмите «Создать проект», чтобы сгенерировать проект и загрузить его.
- Разархивируйте загруженный проект, затем откройте IDEA->File->Open, чтобы выбрать pom проекта для открытия.
- Таким образом успешно собирается простейший проект SpringBoot.
Создайте проект SpringBoot с помощью команд Maven.
- Настройте системный путь Maven.
- затем используйте команду
mvn archetype:generate -DinteractiveMode=false -DgroupId=cn.koali -DartifactId=springboot_demo -Dversion=1.0.0-SNAPSHOT
Обратитесь к значению каждого параметраОфициальный сайт 3.
Создание прошло успешно, и будет предложен адрес, сгенерированный проектом.4. Затем используйте IDEA, чтобы таким же образом открыть только что созданный проект из командной строки. 5. Далее открытьПростое руководство по SpringBoot Найдите сборку с зависимостями копирования maven и т. д.
Создайте проект SpringBoot через IDEA.
- Откройте IDEA, затем File->new Project.Заполните соответствующую Группу, Артефакт, а затем выберите необходимые зависимости.
Web Flux с использованием Spring 5.0
Что такое веб-флюс?
- Spring WebFlux является асинхронным, неблокирующим.
- WebFlux имеет два типа коллекции, моно и флюс.
- Mono — это 0-> 1 типы коллекций, например Mono.
- Flux — это тип коллекции 1->n, такой как Flux
- Mono и Flux обрабатываются асинхронно, в то время как объекты коллекции в основном синхронны.
В чем разница между Web Flux (Netty) и Web MVC (Servlet)?
- Webflux поддерживает лямбда-выражения Java8.
- Web MVC - это синхронная модель блокировки IO, а веб-флюс представляет собой асинхронную модель безблокирующей IO.
Web Flux (Netty) с Web MVC (Servlet) преимущества и недостатки?
- Эффективность (qps) Web Flux выше, чем у Web MVC.
- Сложность программирования Web Flux высока, затраты на обслуживание высоки, писать для аспектов непросто и т. д.
Практика веб-флюса
@Configuration
public class RouterFunctionConfiguration {
@Bean
public RouterFunction<ServerResponse> webFlux() {
return RouterFunctions.route(RequestPredicates.GET("/webFlux"), request -> {
Mono<String> str = Mono.just("Hello World").delayElement(Duration.ofMillis(10));
return ServerResponse.ok().body(str, String.class);
});
}
}
Аналог Web MVC. Мы объявляем наш класс маршрута как@Configuration, а затем инициализируйте bean-компонент. В Web Flux интерфейс запроса — RequestServer, а интерфейс ответа — ResponseServer. RouterFunction предоставляет маршрут, и мы устанавливаем RequestPredicates в методе маршрута. Поведение маршрутизации, чтобы добиться принятия запроса.
Проверьте веб-флюс и какой веб-MVC высокая эффективность
- Сначала напишите два API, одно использованиеWeb Flux, используетсяWeb MVC, затем блокируется на 10 секунд, делая вид, что пользователь думал 10 секунд.
//web mvc
@GetMapping("/webServlet")
public String webServlet(){
try {
TimeUnit.MILLISECONDS.sleep(10);
} catch (InterruptedException e) {
return "Error during thread sleep";
}
return "Hello World";
}
//web flux
@Bean
public RouterFunction<ServerResponse> webFlux() {
return RouterFunctions.route(RequestPredicates.GET("/webFlux"), request -> {
Mono<String> str = Mono.just("Hello World").delayElement(Duration.ofMillis(10));
return ServerResponse.ok().body(str, String.class);
});
}
- Затем откройте JmeterПредположим, есть 1000 пользователей, и запрос инициируется 10 раз в цикле.JMeter заполняет запрошенный путь отдельноWeb flux занимает около 10 секунд, и запросы не будут отклонены.web MVC занимает около 21 секунды, и большинство запросов отклоняются.