Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 获取所有带注释的类并调用每个方法以获取返回值_Spring Mvc - Fatal编程技术网

Spring mvc 获取所有带注释的类并调用每个方法以获取返回值

Spring mvc 获取所有带注释的类并调用每个方法以获取返回值,spring-mvc,Spring Mvc,我正在使用SpringMVC创建一个小型验证应用程序。我是SpringMVC的新手,我想确保我想要的是可能的 我简化了我的问题 我已经设置了一个控制器,在执行URL时将调用该控制器localhost/validate/{SOME TEXT} 带有的{SOME TEXT}值将被发送到我创建的所有验证类。 我目前有4个类来进行验证,并返回另一个关于验证过程中发生的事情的对象数据 4个验证类别为: CreditCardValidator AddressValidator ZipcodeValidato

我正在使用SpringMVC创建一个小型验证应用程序。我是SpringMVC的新手,我想确保我想要的是可能的

我简化了我的问题

我已经设置了一个控制器,在执行URL时将调用该控制器
localhost/validate/{SOME TEXT}

带有的
{SOME TEXT}
值将被发送到我创建的所有验证类。 我目前有4个类来进行验证,并返回另一个关于验证过程中发生的事情的对象数据

4个验证类别为:

CreditCardValidator
AddressValidator
ZipcodeValidator
AccountNumberValidator
我有一个主控制器bean,当调用它时,我希望将字符串传递给每个类,并存储从每个类返回的对象,最后在响应中返回所有结果

通常,我会在没有Spring的情况下通过创建每个验证类实现的接口来实现这一点。然后在类列表中迭代并执行一个方法

这样做的问题是,每当我需要添加新的验证类时,我都需要注册它,以便请求可以使用它。这涉及到修改现有类

由于我在这个应用程序中大量使用SpringQuick,我想知道这是否可以通过Spring和带注释的类来实现

我正在考虑创建每个验证类都有的自定义注释,然后使用spring组件扫描来获取这些类。这将允许我在不修改现有代码的情况下创建新的验证

下面是我想做的事情

@Controller
public class StringValidationController {

    @RequestMapping(value = "/validate/{text:.+}", method = RequestMethod.GET)
    public ModelAndView index(@PathVariable("text") String text) {

        ModelAndView model = new ModelAndView();
        model.setViewName("index");
        model.addObject("result", getListOfValidatedData());

        return model;

    }

    public List getListOfValidatedData(){
        //Scan for IValidator annotation
        //call each concrete class and pass in text
        // get object with has validation information in it
    }

}
也许这会有帮助: