1

我已将我的 spring 应用程序配置如下:

 // 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

 }

要求:

返回 Student后Controller,根据 对 Student 对象及其内部的所有复杂属性进行修改Annotation,例如,如果请求来自移动端,则将学生名称修剪为 10 等等。

我能想到的方法:

  1. 递归迭代带有注释的字段并修改字段。每次对类字段的迭代可能会很忙,因为类很复杂并且最多可以嵌套 n 层。

  2. 在服务器启动时创建一个带注释的字段列表,然后在此列表上迭代并将更改应用于目标对象。

    我目前正在努力使用这两种方法。所以想知道是否存在一些预构建的解决方案或设计模式来处理这种情况。

4

1 回答 1

0

我实际上编写了基于反射的方法并在一段时间前创建了一个库。

它使用反射来识别字段上的注释,然后根据输入设备采取适当的行动。

这是库 https://github.com/santoshjoshi/Adaptive-Device-Data-Filtering的链接

于 2017-03-26T12:11:35.197 回答