注記ベースjavaチェックアウトフレームワークchecksum

2915 ワード

checksum
Java注釈に基づいてチェックマークchecksumを生成します.
オープンソースアドレス:github checksum
創作の缘由
従来のコードではchecksumの生成に用いるツールクラスメソッドである.
その後、次のような問題が見つかりました.
  • 一部のフィールドは大きすぎてチェックに参加したくないが、簡単な調整はできない.
  • 異なるシステムのchecksumフィールドが異なり、ツールメソッドcopyを変更するしかありません.

  • このように大きな弊害があり、柔軟性を完全に失ったような気がします.
    とくせい
  • 注釈に基づくchecksum署名
  • Fluentフロー構文
  • は、柔軟なポリシーカスタム
  • をサポートします.
    レコードの更新
    レコードの更新
    クイックスタート
    環境要件
    jdk7+
    maven 3.x+
    導入
    
        com.github.houbb
        checksum
        0.0.1
    

    チェックアウト対象のサンプル・オブジェクトの定義
  • User.java
  • public class User {
    
        @CheckField
        private String name;
    
        @CheckField
        private String password;
    
        private String address;
    
        @Checksum
        private String checksum;
    
        //Getter & Setter
        //toString()
    }

    コア注記@CheckFieldは、署名に参加するフィールド情報を表す@Checksumは、チェックアウト結果が格納されているフィールドを示します.
    テストの呼び出し
    package com.github.houbb.checksum.core;
    
    import com.github.houbb.checksum.model.User;
    import org.junit.Assert;
    import org.junit.Test;
    
    /**
     * @author binbin.hou
     * @since 0.0.1
     */
    public class ChecksumBsTest {
    
        @Test
        public void checksumTest() {
            User user = buildUser();
            final String checksum = ChecksumBs
                    .newInstance(user)
                    .checksum();
    
            Assert.assertEquals("8D62F2BC49A9AB51280C8F42A483ED54", checksum);
        }
    
        @Test
        public void fillTest() {
            User user = buildUser();
            ChecksumBs.newInstance(user).fill();
    
            Assert.assertEquals("User{name='ryo', password='1234', address='china', checksum='8D62F2BC49A9AB51280C8F42A483ED54'}",
                    user.toString());
        }
    
        /**
         *       
         * @return       
         */
        private User buildUser() {
            User user = new User();
            user.name("ryo")
                    .password("1234")
                    .address("china");
            return user;
        }
    
    }

    ChecksumBsブートクラス
    署名を作成するための関連構成と実装.
    コアメソッドの構成
    方法
    デフォルト
    コメント
    newInstance()
    新規ChecksumBsインスタンス(static)
    newInstance(object)
    ChecksumBsインスタンスを新規作成し、サインするオブジェクトを指定します(static、推奨)
    target(Object)
    サインするオブジェクトの指定
    secret(ISecret)
    DefaultMd5Secret
    暗号化のポリシーを指定し、デフォルトではmd 5暗号化を使用します.
    sort(ISort)
    NameAscSort
    ソートのポリシーを指定します.デフォルトでは、フィールドの名前に基づいてリストを並べます.
    cache(ICache)
    DefaultFieldListCache
    フィールドのキャッシュポリシーを指定し、デフォルトではローカルmapを使用してフィールド情報キャッシュを行います.
    コアメソッドの呼び出し
    方法
    戻り値
    コメント
    checksum()
    String
    チェックアウトの結果を返します
    fill()
    なし
    上のchecksumの結果を@Checksum IDのフィールドに設定します.
    ツールバーの
    上記のISecret/ISort/ICacheは、カスタマイズをサポートしています.
    一般的にはISecretを再定義するだけです.