Rumah >Java >javaTutorial >Membina Aplikasi CRUD Pengguna dengan Spring Boot dan Docker

Membina Aplikasi CRUD Pengguna dengan Spring Boot dan Docker

WBOY
WBOYasal
2024-09-07 06:33:38773semak imbas

Building a User CRUD Application with Spring Boot and Docker

pengenalan

Spring Boot ialah rangka kerja yang memudahkan pembangunan aplikasi sedia pengeluaran menggunakan rangka kerja Spring. Ia menyediakan satu set alat dan konvensyen untuk membantu anda membina aplikasi dengan cepat dan cekap. Dengan Spring Boot, anda boleh membuat aplikasi gred pengeluaran yang berdiri sendiri dengan mudah dengan konfigurasi minimum.

Panduan ini akan memandu anda membuat aplikasi CRUD Pengguna (Buat, Baca, Kemas Kini, Padam) yang mudah menggunakan Spring Boot. Kami juga akan menyimpan aplikasi dengan Docker untuk memastikan konsistensi merentas persekitaran yang berbeza.

Prasyarat

Pastikan anda telah memasang yang berikut:

  • Java JDK 11 atau lebih tinggi
  • Maven
  • Pelabuh
  • Git

Langkah 1: Cipta Projek But Spring Baharu

Hasilkan Projek

Gunakan Spring Initializr untuk menjana projek Spring Boot baharu:

  • Projek: Projek Maven
  • Bahasa: Jawa
  • But Musim Bunga: 3.2.0
  • Kumpulan: com.contoh
  • Artifak: crud pengguna
  • Pergantungan: Spring Web, Spring Data JPA, H2 Pangkalan Data

Klik "Jana" untuk memuat turun projek, kemudian nyahzipnya.

Navigasi ke Direktori Projek

cd user-crud

Langkah 2: Tentukan Entiti Pengguna

Buat Kelas Entiti

Buat kelas Java baharu bernama User.java di dalam src/main/java/com/example/usercrud:

package com.example.usercrud;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private String email;

    // Getters and Setters
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

Langkah 3: Buat Repositori Pengguna

Buat Antara Muka Repositori

Buat antara muka Java baharu bernama UserRepository.java di dalam src/main/java/com/example/usercrud:

package com.example.usercrud;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
}

Langkah 4: Buat Pengawal Pengguna

Buat Pengawal REST

Buat kelas Java baharu bernama UserController.java di dalam src/main/java/com/example/usercrud:

package com.example.usercrud;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Optional;

@RestController
@RequestMapping("/api/users")
public class UserController {

    @Autowired
    private UserRepository userRepository;

    @PostMapping
    public ResponseEntity<User> createUser(@RequestBody User user) {
        User savedUser = userRepository.save(user);
        return new ResponseEntity<>(savedUser, HttpStatus.CREATED);
    }

    @GetMapping
    public List<User> getAllUsers() {
        return userRepository.findAll();
    }

    @GetMapping("/{id}")
    public ResponseEntity<User> getUserById(@PathVariable Long id) {
        Optional<User> user = userRepository.findById(id);
        return user.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build());
    }

    @PutMapping("/{id}")
    public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user) {
        if (!userRepository.existsById(id)) {
            return ResponseEntity.notFound().build();
        }
        user.setId(id);
        User updatedUser = userRepository.save(user);
        return ResponseEntity.ok(updatedUser);
    }

    @DeleteMapping("/{id}")
    public ResponseEntity<Void> deleteUser(@PathVariable Long id) {
        if (!userRepository.existsById(id)) {
            return ResponseEntity.notFound().build();
        }
        userRepository.deleteById(id);
        return ResponseEntity.noContent().build();
    }
}

Langkah 5: Buat fail Docker

Tambah fail Docker

Buat fail bernama Dockerfile dalam direktori akar projek anda dengan kandungan berikut:

# Use a base image with Java 11
FROM openjdk:11-jdk-slim

# Set the working directory
WORKDIR /app

# Copy the jar file from the target directory
COPY target/user-crud-0.0.1-SNAPSHOT.jar app.jar

# Expose port 8080
EXPOSE 8080

# Run the application
ENTRYPOINT ["java", "-jar", "/app/app.jar"]

Bina Imej Docker

Pertama, bungkus aplikasi anda dengan Maven:

./mvnw clean package

Kemudian bina imej Docker:

docker build -t user-crud .

Langkah 6: Jalankan Kontena Docker

Jalankan Bekas

Gunakan arahan berikut untuk menjalankan bekas Docker anda:

docker run -p 8080:8080 user-crud

Sahkan Permohonan

Lawati http://localhost:8080/api/users untuk memastikan aplikasi berjalan dengan betul dalam bekas Docker. Anda boleh menggunakan alatan seperti curl atau Postman untuk menguji titik akhir CRUD.

Kesimpulan

Anda telah berjaya mencipta aplikasi CRUD Pengguna yang mudah dengan Spring Boot, menyimpannya menggunakan Docker dan mengesahkan operasinya. Persediaan ini membolehkan anda menggunakan dan mengurus aplikasi anda secara konsisten merentas persekitaran yang berbeza, anda boleh melanjutkan contoh ini dengan ciri tambahan atau menyepadukannya ke dalam sistem yang lebih besar.
Jangan ragu untuk menghubungi soalan anda... Selamat Mengekod!

Untuk maklumat lanjut, rujuk:

  • Dokumentasi Spring Boot
  • Dokumentasi Docker

Atas ialah kandungan terperinci Membina Aplikasi CRUD Pengguna dengan Spring Boot dan Docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn