近几年,Java后台开发中,采用微服务模式越来越流行。常见的微服务框架是Spring Boot和Spring Cloud。如何开始写一个简单的Java微服务?
1、首先,在开发环境中安装Java和Maven。
2、创建一个新的Spring Boot项目,可以使用Spring Initializr(https://start.spring.io/)来生成基础项目结构。
在项目的pom.xml文件中,添加Spring Cloud的依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-***flix-eureka-server</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
3、创建一个主启动类,标记为@SpringBootApplication注解。
@SpringBootApplication
@EnableEurekaServer
public class EurekaServerApplication {
public static void main(String[] args) {
SpringApplication.run(EurekaServerApplication.class, args);
}
}
4、创建一个配置文件application.properties,添加Eureka Server的配置。
spring.application.name=eureka-server
server.port=8761
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
5、运行应用程序,启动Eureka Server。
6、创建一个新的Spring Boot项目作为微服务提供者,同样使用Spring Initializr创建,添加相应的依赖。
在该项目的application.properties文件中,添加Eureka Client的配置。
spring.application.name=greeting-service
server.port=8080
eureka.client.service-url.default-zone=http://localhost:8761/eureka/
7、创建一个Controller类,处理服务请求。
@RestController
public class GreetingController {
@GetMapping("/greeting")
public String greeting() {
return "Hello from Greeting Service!";
}
}
8、运行微服务提供者应用程序。
9、创建另一个新的Spring Boot项目作为微服务消费者,同样使用Spring Initializr创建,并添加相应的依赖。
在该项目的application.properties文件中,添加Eureka Client的配置。Plain Text
spring.application.name=greeting-consumer
server.port=8081
eureka.client.service-url.default-zone=http://localhost:8761/eureka/
10、创建一个Service类,用于调用微服务提供者。
@Service
public class GreetingService {
private final RestTemplate restTemplate;
@Autowired
public GreetingService(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
public String getGreeting() {
ResponseEntity<String> response = restTemplate.getForEntity("http://greeting-service/greeting", String.class);
return response.getBody();
}
}
11、创建一个Controller类,处理服务请求。
@RestController
public class GreetingController {
private final GreetingService greetingService;
@Autowired
public GreetingController(GreetingService greetingService) {
this.greetingService = greetingService;
}
@GetMapping("/greeting")
public String greeting() {
return greetingService.getGreeting();
}
}
12、运行微服务消费者应用程序。
现在,便拥有一个简单的Java微服务了,其中包含一个Eureka Server作为服务注册中心,一个微服务提供者和一个微服务消费者相互通信。你可以访问消费者的http://localhost:8081/greeting端点来触发微服务之间的通信,并返回提供者的问候消息。