欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何將Java枚舉名稱作為注解的屬性值實(shí)現(xiàn)詳解

 更新時(shí)間:2023年05月26日 10:16:41   作者:javalover  
這篇文章主要為大家介紹了如何將Java枚舉名稱作為注解的屬性值實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

一、前言

  • Java注解的屬性值,必須為 常量
  • 有些場景想把 枚舉名稱 設(shè)置為 注解的屬性值(如 spring-cache 用枚舉配置緩存,使用時(shí) 需要 緩存名稱)

二、方案

方案一:名稱屬性 + 外部名稱接口

@lombok.Getter
@lombok.AllArgsConstructor
public enum CommonCacheConfig {
  QUOTE_LEVEL(CommonCacheConstant.QUOTE_LEVEL, 2);
  private final String name;
  private final int ttl;
}
public interface CommonCacheConstant {
    String QUOTE_LEVEL = "QUOTE_LEVEL";
}

使用:@Cacheable(cacheNames = CommonCacheConstant.QUOTE_LEVEL)

方案二:名稱屬性 + 內(nèi)部名稱接口

public enum CommonCacheConfig {
  QUOTE_LEVEL(Constant.QUOTE_LEVEL, 2);
  private final String name;
  private final Integer ttl;
  public interface Constant {
      String QUOTE_LEVEL = "QUOTE_LEVEL";
  }
}

使用:@Cacheable(cacheNames = CommonCacheConfig.Constant.QUOTE_LEVEL)

方案三:Lombok 的 FieldNameConstants

@lombok.Getter
@lombok.AllArgsConstructor
@lombok.experimental.FieldNameConstants(onlyExplicitlyIncluded = true)
public enum CommonCacheConfig {
  @FieldNameConstants.Include QUOTE_LEVEL(2);
  private final Integer ttl;
}

使用:@Cacheable(cacheNames = CommonCacheConfig.Fields.QUOTE_LEVEL)

注意:FieldNameConstants 的 onlyExplicitlyIncluded 需設(shè)置為 true,否則 按枚舉的屬性(如 ttl)生成,同時(shí)在 枚舉項(xiàng)前加 @FieldNameConstants.Include

三、總結(jié)

以上就是如何將Java枚舉名稱作為注解的屬性值實(shí)現(xiàn)詳解的詳細(xì)內(nèi)容,更多關(guān)于Java枚舉名稱作為注解屬性值的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 修改idea運(yùn)行內(nèi)存大小的方法總結(jié)

    修改idea運(yùn)行內(nèi)存大小的方法總結(jié)

    在開發(fā)過程中,總會遇到idea運(yùn)行內(nèi)存不足,所以本文小編給大家介紹了修改idea運(yùn)行內(nèi)存大小的兩種方法,文中通過圖文給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • java ZipFile如何將多級目錄壓縮

    java ZipFile如何將多級目錄壓縮

    這篇文章主要介紹了java ZipFile如何將多級目錄壓縮問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • SpringBoot接口請求入?yún)⒑统鰠⒃鰪?qiáng)的五種方法

    SpringBoot接口請求入?yún)⒑统鰠⒃鰪?qiáng)的五種方法

    這篇文章主要介紹了SpringBoot接口請求入?yún)⒑统鰠⒃鰪?qiáng)的五種方法,使用`@JsonSerialize`和`@JsonDeserialize`注解,全局配置Jackson的`ObjectMapper`,使用`@ControllerAdvice`配合`@InitBinder`,自定義HttpMessageConverter和使用AOP進(jìn)行切面編程,需要的朋友可以參考下
    2024-07-07
  • SpringBoot @Autowired注入為空的情況解讀

    SpringBoot @Autowired注入為空的情況解讀

    這篇文章主要介紹了SpringBoot @Autowired注入為空的情況解讀,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • SpringBoot集成內(nèi)存數(shù)據(jù)庫hsqldb的實(shí)踐

    SpringBoot集成內(nèi)存數(shù)據(jù)庫hsqldb的實(shí)踐

    hsqldb只需要添加對應(yīng)的依賴,然后在配置文件進(jìn)行配置。不需要安裝一個(gè)數(shù)據(jù)庫,本文就來介紹一下具體使用,感興趣的可以了解一下
    2021-09-09
  • 關(guān)于SpringBoot2.7.6連接nacos遇到的一些問題

    關(guān)于SpringBoot2.7.6連接nacos遇到的一些問題

    這篇文章主要介紹了關(guān)于SpringBoot2.7.6連接nacos遇到的一些問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • 使用idea將工具類打包使用的詳細(xì)教程

    使用idea將工具類打包使用的詳細(xì)教程

    這篇文章主要介紹了使用idea將工具類打包使用的詳細(xì)教程,本文通過圖文并茂給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • java 使用ElasticSearch完成百萬級數(shù)據(jù)查詢附近的人功能

    java 使用ElasticSearch完成百萬級數(shù)據(jù)查詢附近的人功能

    本篇文章主要介紹了java 使用ElasticSearch完成百萬級數(shù)據(jù)查詢附近的人功能,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • SpringBoot基于RabbitMQ實(shí)現(xiàn)消息可靠性的方法

    SpringBoot基于RabbitMQ實(shí)現(xiàn)消息可靠性的方法

    RabbitMQ 提供了 publisher confirm 機(jī)制來避免消息發(fā)送到 MQ 過程中丟失,這種機(jī)制必須給每個(gè)消息指定一個(gè)唯一ID,消息發(fā)送到MQ以后,會返回一個(gè)結(jié)果給發(fā)送者,表示消息是否處理成功,本文給大家介紹了SpringBoot基于RabbitMQ實(shí)現(xiàn)消息可靠性的方法,需要的朋友可以參考下
    2024-04-04
  • 解決SpringBoot集成Eureka導(dǎo)致返回結(jié)果由json變?yōu)閤ml的問題

    解決SpringBoot集成Eureka導(dǎo)致返回結(jié)果由json變?yōu)閤ml的問題

    這篇文章主要介紹了解決SpringBoot集成Eureka導(dǎo)致返回結(jié)果由json變?yōu)閤ml的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論