亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

創建自定義的Java注解類的方法

2019-11-26 15:06:34
字體:
來源:轉載
供稿:網友

 如果你已經在使用Java編程,并且也使用了任何像Spring和Hibernate這樣的流行框架,那么你應該對注解的使用非常地熟悉。使用一個現有框架工作的時候,通常使用它的注解就夠了。但是,你是不是也有時候有要創建屬于你自己的注解的需求呢?

不久之前,我找到了一個自己創建一個注解的理由,那是一個涉及驗證存儲在多種數據庫中的常用數據的項目。
場景描述

該業務有多種數據庫都存儲著相同的數據,它們有各自不同的保持數據更新的方法. 該業務曾計劃把所有這些數據都整合到一個主數據庫中,以減輕涉及到多種數據源所帶來的問題的復雜性.


不過在項目開始之前,業務還需要知道數據距離可以同步還有多少差距,并做出任何必要的修正來使其可以進行同步. 第一步需要創建一個展示那些數據多種數據庫的通用數據的報表,并對其值進行驗證, 對那些不符合條件的記錄進行高亮顯示. 這里有一個對當時需求的簡短摘要:

  •     比對多種數據庫間公共部分的數據,諸如客戶,公司或者目錄信息.
  •     默認的值應該根據值的類型匹配所有的數據庫.
  •     對于某些字段,我們只想展示其值,而不要進行任何數據比較.
  •     對于某些字段,我們只想要對比其值,并在指定的特定數據源上進行數據驗證.
  •     對于某些字段,我們可能想要做一些復雜的數據比較,可能會基于記錄內的其它字段.
  •     對于某些字段,我們可能想要用一種特定格式對數據進行格式化,比如錢幣數量 使用 $000,000.00 .
  •     報表應該用MS Excel格式的,每一行都包含來自每個數據源的字段值. 任何不匹配數據驗證規則的行都應該用黃色高亮顯示.

注解

經過一陣子對需求和一些想法的推敲之后,我決定使用注解來驅動對于數據比對和報表處理的配置. 我們需要的東西得是簡單,而高度靈活可擴展的. 這些注解將會是字段級別的,而我就喜歡配置不會被隱藏在classpath某個地方的文件中. 如此,你就能夠直接查看同一個字段相關聯的注解,以便知曉它具體是如何進行處理的.

在最簡單的情況下,注解無非就是一個標記,就只是提供信息而不會對代碼執行的操作本身有直接影響的元數據. 如果你一直在從事Java編程,那么現在你對它們的使用應該相當的熟悉了, 但是可能你從來沒有過創建屬于你自己的注解的需求. 為此,你需要創建一個帶有Java類型@interface的新類型,它將包含能指定元數據詳細信息的要素.

這里有一個來自這個項目的示例:
 

@Target(ElementType.FIELD)@Retention(RetentionPolicy.RUNTIME)public @interface ReconField {   /**   * Value indicates whether or not the values from the specified sources should be compared or will be used to display values or reference within a rule.   *   * @return The value if sources should be compared, defaults to true.   */  boolean compareSources() default true;   /**   * Value indicates the format that should be used to display the value in the report.   *   * @return The format specified, defaulting to native.   */  ReconDisplayFormat displayFormat() default ReconDisplayFormat.NATIVE;   /**   * Value indicates the ID value of the field used for matching source values up to the field.   *   * @return The ID of the field.   */  String id();   /**   * Value indicates the label that should be displayed in the report for the field.   *   * @return The label value specified, defaults to an empty string.   */  String label() default "";   /**   * Value that indicates the sources that should be compared for differences.   *   * @return The list of sources for comparison.   */  ReconSource[] sourcesToCompare() default {}; }

這是驅動數據比對過程如何運作的主要注解. 它包含的基本要素,可以滿足不同數據源間數據進行比較的大部分需求. @ReconField 可以處理除更加復雜的比對之外,我們所期望的大多數需求, 而更加復雜的情況我們將會在稍后有所討論. 這些要素的大多數在代碼清單中一對一的注釋中都有介紹, 而需要指出的是,在我們的@ReconField上有幾個關鍵的注解.

    @Target 亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

国产精品一区二区久久久久| 国内精品小视频在线观看| 宅男66日本亚洲欧美视频| 欧美日韩国产影院| 亚洲一区二区三区乱码aⅴ| 亚洲国产精品中文| 91精品久久久久久久久久久久久| 日韩黄在线观看| 国产成人avxxxxx在线看| 亚洲国产中文字幕久久网| 亚洲国产欧美一区| 亚洲欧美国产一本综合首页| 国产精品白丝jk喷水视频一区| 一本色道久久综合狠狠躁篇的优点| 欧美精品18videos性欧| 亚洲视频一区二区三区| 亚洲视频在线播放| 成人h视频在线观看播放| 色琪琪综合男人的天堂aⅴ视频| 日韩动漫免费观看电视剧高清| 日韩精品一区二区三区第95| 国产一区二区三区三区在线观看| 欧美成年人视频网站| 91精品久久久久久久| 国产精品久久二区| 91在线观看免费观看| 亚洲福利精品在线| 欧美成人精品一区二区| 日韩在线国产精品| 伊人精品在线观看| 色偷偷av亚洲男人的天堂| 欧美黄色片免费观看| 国产精品十八以下禁看| 成人国产亚洲精品a区天堂华泰| 国产日韩精品在线观看| 日韩中文字幕网址| 激情成人在线视频| 亚洲自拍偷拍网址| 色偷偷9999www| 欧美精品少妇videofree| 91精品视频免费看| 国产一区二区三区欧美| 精品福利在线视频| 国产婷婷成人久久av免费高清| 欧美日韩国产在线播放| 亚洲成色www8888| 国产精品久久在线观看| 在线观看欧美视频| 国产精品视频男人的天堂| 国产黑人绿帽在线第一区| 亚洲欧洲激情在线| 成人看片人aa| 亚洲色图35p| 91精品视频在线看| 亚洲国产精品资源| 成人黄色免费看| 亚洲精品日韩丝袜精品| 久久久久久亚洲精品不卡| 欧美日韩一区二区免费在线观看| 久久精品91久久香蕉加勒比| 色悠悠久久88| 久久久久成人精品| 在线色欧美三级视频| 国产亚洲欧美另类中文| 欧美电影免费看| 精品国产视频在线| 欧美老肥婆性猛交视频| 精品久久久一区| 欧美大成色www永久网站婷| 97精品视频在线观看| 91精品久久久久| 久久久久久这里只有精品| 亚洲色图综合久久| 亚洲第一在线视频| 欧美激情图片区| 日韩视频在线免费观看| 亚洲综合中文字幕在线观看| 日韩av免费观影| 国产日韩欧美在线看| 亚洲国产精品免费| 北条麻妃99精品青青久久| 日韩大片免费观看视频播放| 性色av一区二区咪爱| 欧美—级高清免费播放| 欧美日韩久久久久| 最近2019年好看中文字幕视频| 欧美专区福利在线| 亚洲高清免费观看高清完整版| 国产成人福利视频| 国产精品91久久久| 亚洲一区二区免费| 亚洲日本中文字幕免费在线不卡| 亚洲男人天堂2023| 精品久久久久久国产91| 久久精品视频亚洲| 色在人av网站天堂精品| 国产精品影片在线观看| 亚洲精品在线91| 免费av一区二区| 色av吧综合网| 亚洲国产欧美一区二区三区同亚洲| 91久久精品日日躁夜夜躁国产| 久久国产精品久久精品| 欧美老女人xx| 亚洲在线第一页| 欧美黄色片在线观看| 91在线精品播放| 久久久av网站| 欧美日韩高清在线观看| 性欧美长视频免费观看不卡| 国产999精品视频| 欧美成人亚洲成人日韩成人| 永久免费看mv网站入口亚洲| 欧美在线观看www| 亚洲女人天堂av| 欧美中文字幕精品| 韩国三级日本三级少妇99| 日韩欧美亚洲综合| 亚洲欧美一区二区三区在线| 国产成人一区二区在线| 日韩精品视频免费专区在线播放| 在线视频日韩精品| 欧美日韩国产限制| 97精品国产91久久久久久| 国产日韩av高清| 国产日韩换脸av一区在线观看| 日韩av资源在线播放| 91wwwcom在线观看| 精品久久久久久久久久久久久久| 最近日韩中文字幕中文| 亚洲一区二区三区xxx视频| 国产亚洲成av人片在线观看桃| 成人xvideos免费视频| 日韩精品在线免费| 欧美在线一区二区三区四| 理论片在线不卡免费观看| 日韩国产精品亚洲а∨天堂免| 91成人福利在线| 亚洲综合在线小说| 国产91精品青草社区| 国产精品久久电影观看| 欧美性猛交xxxx久久久| 国产精品欧美一区二区三区奶水| 日韩欧美在线国产| 欧美黑人又粗大| 久久精品精品电影网| 日本一区二区不卡| 在线观看欧美成人| 欧美一区二区影院| 日韩av最新在线| 日韩一区二区精品视频| 亚洲区免费影片| 亚洲直播在线一区| 国产视频综合在线| 日韩中文字幕在线看| 亚洲2020天天堂在线观看| 美女福利视频一区| 亚洲精品视频免费在线观看| 在线观看精品国产视频| 国产亚洲在线播放| 精品一区二区三区三区| 黑人精品xxx一区| 欧洲午夜精品久久久| 精品久久久久久电影|