Heim  >  Artikel  >  Java  >  Wie funktionieren Java-Aufzählungstypen mit dem Spring-Framework?

Wie funktionieren Java-Aufzählungstypen mit dem Spring-Framework?

WBOY
WBOYOriginal
2024-05-04 13:45:011173Durchsuche

Der Aufzählungstyp im Spring-Framework wird verwendet, um eine Reihe vordefinierter konstanter Werte darzustellen. Er wird hauptsächlich auf folgende Weise verwendet: Deklarieren Sie den Aufzählungstyp und verwenden Sie die Annotation @Enumerated, um die Persistenzstrategie anzugeben (EnumType.ORDINAL oder EnumType). STRING) Praktischer Fall: Benutzerberechtigungen Aufzählungstypen können im Verwaltungssystem zur Darstellung von Benutzerberechtigungen verwendet werden, und die Annotation @CollectionTable kann zur Verknüpfung mit dem Benutzermodell verwendet werden, um Benutzerberechtigungen einfach zu verwalten und Aufzählungskonstanten beizubehalten.

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

Die Verwendung von Java-Aufzählungstypen im Spring-Framework

Im Spring-Framework werden Aufzählungstypen verwendet, um eine Reihe vordefinierter konstanter Werte darzustellen, z. B.:

public enum Role {
    ADMIN,
    USER,
    GUEST
}

Aufzählungstypen und Spring-Framework Das Wichtigste Möglichkeiten, es zusammen zu verwenden, sind wie folgt:

1. Deklarieren Sie einen Aufzählungstyp

Zunächst müssen Sie einen Aufzählungstyp deklarieren:

public enum Role {

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

2. Verwenden Sie die Annotation @Enumerated @Enumerated 注解

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

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

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

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

实战案例:用户权限管理

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

public enum Permission {
    READ,
    WRITE,
    DELETE
}

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

@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;
}

User 类中,permissions 属性是一个 Set4021e4fcee2d18f954cbe4ec9db50982,用于存储用户的权限。通过使用 @CollectionTable

in Bevor Sie einen Aufzählungstyp verwenden, müssen Sie seine Persistenzstrategie mithilfe der Annotation @Enumerated angeben. Spring bietet zwei Strategien:

  • EnumType.ORDINAL: Speichert die sequentiellen Werte von Aufzählungskonstanten in der Datenbank (beginnend bei 0).
  • EnumType.STRING: Speichert den String-Wert einer Aufzählungskonstanten in der Datenbank.
rrreee🎜🎜Praxisfall: Benutzerrechteverwaltung🎜🎜🎜Stellen Sie sich ein Benutzerrechteverwaltungssystem vor, bei dem Benutzer unterschiedliche Rechte haben können. Sie können den folgenden Aufzählungstyp verwenden, um Berechtigungen darzustellen: 🎜rrreee🎜 Anschließend können Sie den Aufzählungstyp Permission mit dem Benutzermodell verknüpfen: 🎜rrreee🎜In der Klasse User permissions ist ein Set4021e4fcee2d18f954cbe4ec9db50982, das zum Speichern der Berechtigungen des Benutzers verwendet wird. Durch die Verwendung der Annotation @CollectionTable verwendet Spring eine Hilfstabelle, um die Beziehung zwischen Benutzern und Berechtigungen zu speichern. 🎜🎜Auf diese Weise können Sie Benutzerberechtigungen einfach verwalten und die automatische Konvertierungsfunktion von Spring verwenden, um zwischen persistenten Objekten und Aufzählungskonstanten zu konvertieren. 🎜

Das obige ist der detaillierte Inhalt vonWie funktionieren Java-Aufzählungstypen mit dem Spring-Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn