нужно
Создайте сервер Eureka, два сервиса. Обе службы зарегистрированы на сервере Eureka. Услуга, предоставляемая сервисом one, заключается в следующем: получить параметр и вернуть его пользователю. Служба 2: вызвать службу в службе 1.
процесс сборки
1. Создайте обычный проект maven (springcloud-01-test)
2. Выберите проект и щелкните правой кнопкой мыши, чтобы добавить новый модуль (springcloud-server).
(роль: сервер Эврика)
Заполните GroupId (структура каталога проекта), ArtifactId (имя проекта)
Этот модуль действует как сервер Eureka. Требуемые зависимости: веб-модуль Spring и сервер Eureka.
Код сервера Эврика
① Добавьте аннотацию @EnableEurekaServer в класс запуска.
@SpringBootApplication
@EnableEurekaServer
public class SpringcloudServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudServerApplication.class, args);
}
}
②Настройте файл конфигурации application.properties следующим образом.
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
Запустите модуль. Откройте браузер и введите http://localhost:8761.
Как показано на рисунке, запуск прошел успешно. Но пока никаких сервисов не найдено.3. Выберите проект и щелкните правой кнопкой мыши, чтобы добавить новый модуль (springcloud-provider).
(роль: первый сервис: получить параметр и вернуть его пользователю)
Шаги по добавлению модулей аналогичны шагу 2, но зависят от выбора Spring Web и Eureka Discovery Client.
сервисный код
① Добавьте аннотацию @EnableEurekaClient в класс запуска.
@SpringBootApplication
@EnableEurekaClient
public class SpringcloudProviderApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudProviderApplication.class, args);
}
}
②Создайте новый класс контроллера ProviderController.java в том же каталоге, что и класс запуска.Код выглядит следующим образом.
@RestController
public class ProviderController {
@RequestMapping(value = "/person/{name}",method = RequestMethod.GET)
public String findName(@PathVariable("name") String name){
return name;
}
}
③ Настройте файл конфигурации application.properties следующим образом.
spring.application.name=service-provider
eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
Запустите модуль и обновите браузер.
Служба одна регистрация прошла успешно! !4. Выберите проект и щелкните правой кнопкой мыши, чтобы добавить новый модуль (springcloud-invoker).
(роль: служба 2: вызвать метод в службе 1)
Шаги и зависимости нового модуля такие же, как и в шаге 3.
сервисный код
① Добавьте аннотацию @EnableDiscoveryClient в класс запуска.
@SpringBootApplication
@EnableDiscoveryClient
public class SpringcloudInvokerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudInvokerApplication.class, args);
}
}
②Создайте новый класс контроллера InvokerController.java в том же каталоге, что и класс запуска.Код выглядит следующим образом.
@RestController
@Configuration
public class InvokerController {
@Bean
@LoadBalanced
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
@RequestMapping(value = "/router",method = RequestMethod.GET)
public String router(){
RestTemplate restTemplate = getRestTemplate();
String name = restTemplate.getForObject("http://service-provider/person/chonor",String.class);
return name;
}
}
③ Настройте файл конфигурации application.properties следующим образом.
server.port=9000
spring.application.name=service-invoker
eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone=http://localhost:8761/eureka
Запустите модуль и обновите браузер.
Сервис 1 и Сервис 2 успешно зарегистрированы! !контрольная работа
Ввод браузера http://localhost:9000/router
оригинальный
Оригинальный текст в моем личном блоге:Используйте IDEA для создания первого проекта Spring Cloud (иллюстрация)