Bài 2: Khởi tạo User Service
Mục tiêu
Mục tiêu của bài này là khởi tạo một dịch vụ User Service và đảm bảo nó có thể đăng ký với Eureka Server.
Hướng dẫn chi tiết
1. Tạo mới Spring Boot Project
Tương tự như khi bạn tạo Eureka Server, sử dụng Spring Initializr để tạo một dự án Spring Boot mới.
Project: Maven Project
Language: Java
Spring Boot: Phiên bản mới nhất
Packaging: Jar
Java: 11 hoặc phiên bản mới hơn
2. Thêm các Dependency cần thiết vào pom.xml
Mở file pom.xml và thêm vào các dependency sau:
<dependencies>
<!-- Eureka Client -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- Spring Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Spring Data JPA -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>
Đồng thời, cũng đừng quên thêm Spring Cloud version vào pom.xml (nếu bạn chưa thêm):
<properties>
<spring-cloud.version>Hoxton.SR9</spring-cloud.version> <!-- Sử dụng phiên bản thích hợp -->
</properties>
3. Đăng ký dịch vụ với Eureka
Để đăng ký dịch vụ với Eureka, bạn cần mở class chính (chứa main method) và thêm annotation @EnableEurekaClient hoặc @EnableDiscoveryClient.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
@EnableEurekaClient
@SpringBootApplication
public class UserServiceApplication {
public static void main(String[] args) {
SpringApplication.run(UserServiceApplication.class, args);
}
}
4. Cấu hình application.properties
Cấu hình cổng và Eureka Server URL trong application.properties.
server.port=8081
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
5. Implement một API đơn giản
Ví dụ, chúng ta sẽ tạo một API đơn giản /users để lấy thông tin về user.
Tạo một class model:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
// getters and setters
}
Tạo một UserRepository:
public interface UserRepository extends JpaRepository<User, Long> {
}
Tạo một REST controller:
@RestController
@RequestMapping("/users")
public class UserController {
@Autowired
private UserRepository userRepository;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userRepository.findById(id).orElse(null);
}
}
Bài tập
Chạy dịch vụ User Service bằng cách sử dụng
mvn spring-boot:runhoặc từ IDE của bạn.Truy cập Eureka Server tại http://localhost:8761. Bạn nên thấy User Service đã đăng ký với Eureka.
(Tùy chọn) Dùng Postman hoặc curl để kiểm tra API
/users/{id}.
Với các bước này, bạn đã tạo thành công một User Service có khả năng đăng ký với Eureka Server và cung cấp một API đơn giản.