1

私は以下のように春のアプリケーションを設定しました:

 // Spring MVC controller
 @Controller
 HelloController {  

   @ResponseBody
   Student getData() {
    return student from database;
    }
 }

public Class Student {

 @Trim(device = "mob", trim=10)
 @Trim(device = "desktop", trim=100)
 String name ;

 Address address;

}

public class Address {

 @Trim(device = "mob", trim=10 )
 @Trim(device = "desktop", trim=100 )
 String addressInfo

 }

要件:

が生徒を返した後、Controllerに基づいて、生徒オブジェクトとその内部のすべての複雑な属性を変更します。Annotationたとえば、要求がモバイルからのものである場合は、生徒の名前を 10 にトリム します。

私が考えることができるアプローチ:

  1. 注釈付きのフィールドを再帰的に反復し、フィールドを変更します。クラスは複雑で、最大 n レベルまでネストできるため、毎回のクラス フィールドの反復は多忙を極める可能性があります。

  2. サーバーの起動時に注釈付きフィールドのリストを作成し、その後、このリストを繰り返して、変更をターゲット オブジェクトに適用します。

    私は現在、両方のアプローチに苦労しています。したがって、そのようなシナリオを処理するための事前構築済みのソリューションまたは設計パターンが存在するかどうかを知りたいです。

4

1 に答える 1

0

私は実際に Reflection ベースのアプローチをコーディングし、しばらく前にライブラリを作成しました。

リフレクションを使用してフィールドの注釈を識別し、入力デバイスに基づいて適切なアクションを実行します。

ライブラリのリンクは次のとおりです https://github.com/santoshjoshi/Adaptive-Device-Data-Filtering

于 2017-03-26T12:11:35.197 に答える