Rumah  >  Artikel  >  Java  >  Bagaimanakah jenis penghitungan Java berfungsi dengan rangka kerja Spring?

Bagaimanakah jenis penghitungan Java berfungsi dengan rangka kerja Spring?

WBOY
WBOYasal
2024-05-04 13:45:011132semak imbas

Jenis penghitungan dalam rangka kerja Spring digunakan untuk mewakili satu set nilai pemalar yang dipratentukan Ia digunakan terutamanya dalam cara berikut: Isytiharkan jenis penghitungan dan gunakan anotasi @Enumerated untuk menentukan strategi kegigihan (EnumType.ORDINAL atau EnumType. STRING) Kes praktikal: Kebenaran pengguna Jenis penghitungan boleh digunakan dalam sistem pengurusan untuk mewakili kebenaran pengguna, dan anotasi @CollectionTable boleh digunakan untuk mengaitkan dengan model pengguna untuk mengurus kebenaran pengguna dengan mudah dan mengekalkan pemalar penghitungan. . cara untuk menggunakannya bersama-sama adalah seperti berikut:

Java 枚举类型如何与 Spring 框架配合使用?1 Isytiharkan jenis enumerasi

Pertama, anda perlu mengisytiharkan jenis enumerasi:

public enum Role {
    ADMIN,
    USER,
    GUEST
}

2 Gunakan @Enumerated

dalam Sebelum menggunakan jenis terhitung, anda perlu menentukan strategi kegigihannya menggunakan anotasi @Enumerated. Spring menyediakan dua strategi:

  • EnumType.ORDINAL: Menyimpan nilai jujukan pemalar penghitungan dalam pangkalan data (bermula dari 0).
  • EnumType.STRING: Menyimpan nilai rentetan pemalar penghitungan dalam pangkalan data.
public enum Role {

    // 枚举常量
    ADMIN,
    USER,
    GUEST
}

Kes praktikal: Pengurusan hak pengguna

Pertimbangkan sistem pengurusan hak pengguna di mana pengguna boleh mempunyai hak yang berbeza. Anda boleh menggunakan jenis penghitungan berikut untuk mewakili kebenaran:

@Entity
public class User {

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

    @Enumerated(EnumType.STRING)
    private Role role;
}

Anda kemudian boleh mengaitkan jenis penghitungan Kebenaran dengan model pengguna:

public enum Permission {
    READ,
    WRITE,
    DELETE
}
@Enumerated 注解

在使用枚举类型之前,你需要使用 @Enumerated 注解指定其持久化策略。Spring 提供了两种策略:

  • EnumType.ORDINAL:将枚举常量的顺序值存储在数据库中(从 0 开始)。
  • EnumType.STRING:将枚举常量的字符串值存储在数据库中。
@Entity
public class User {

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

    private String username;
    private String password;

    @Enumerated(EnumType.STRING)
    @CollectionTable(
            name = "user_permissions",
            joinColumns = @JoinColumn(name = "user_id")
    )
    @Column(name = "permission")
    private Set<Permission> permissions;
}

实战案例:用户权限管理

考虑一个用户权限管理系统,其中用户可以拥有不同的权限。你可以使用以下枚举类型来表示权限:

rrreee

然后,可以将 Permission 枚举类型与用户模型关联:

rrreee

User 类中,permissions 属性是一个 Set4021e4fcee2d18f954cbe4ec9db50982,用于存储用户的权限。通过使用 @CollectionTableDalam kelas User, kebenaran ialah Set4021e4fcee2d18f954cbe4ec9db50982 yang digunakan untuk menyimpan kebenaran pengguna. Dengan menggunakan anotasi @CollectionTable, Spring akan menggunakan jadual tambahan untuk menyimpan perhubungan antara pengguna dan kebenaran.

Dengan cara ini, anda boleh mengurus kebenaran pengguna dengan mudah dan menggunakan ciri penukaran automatik Spring untuk menukar antara objek berterusan dan pemalar penghitungan.

Atas ialah kandungan terperinci Bagaimanakah jenis penghitungan Java berfungsi dengan rangka kerja Spring?. 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